Heim > Backend-Entwicklung > Python-Tutorial > So verwenden Sie statische Methoden

So verwenden Sie statische Methoden

anonymity
Freigeben: 2019-05-27 11:13:58
Original
6512 Leute haben es durchsucht

Statische Methoden und Klassenmethoden werden in Python2.2 referenziert, und es können sowohl klassische als auch neue Klassen verwendet werden. Gleichzeitig wurden zwei integrierte Funktionen eingeführt: staticmethod und classmethod, um eine bestimmte Methode in der Klasse in eine dieser beiden Methoden umzuwandeln.

Statische Methode bezieht sich auf eine Methode in einer Klasse, die ohne Beteiligung einer Instanz aufgerufen werden kann (kein Selbstparameter erforderlich). Während des Aufrufvorgangs ist keine Instanziierung erforderlich die Klasse und wird direkt nach dem Aufruf der Methode durch den Klassenzeichenoperator verwendet.

So verwenden Sie statische Methoden

Normalerweise werden statische Methoden mit dem @staticmethod-Dekorator deklariert.

Beispielcode:

class ClassA(object):
    @staticmethod
    def func_a():
        print('Hello Python')
if __name__ == '__main__':
    ClassA.func_a()
    # 也可以使用实例调用,但是不会将实例作为参数传入静态方法
    ca = ClassA()
    ca.func_a()
Nach dem Login kopieren

Hier ist zu beachten, dass in Python 2 eine Klassenmethode, die keinen Selbstparameter erfordert, als statische Methode deklariert werden muss, d. h. add den @staticmethod decorator und ruft ihn somit ohne Instanz auf.

Wenn in Python 3 eine Klassenmethode keinen Selbstparameter erfordert, muss sie nicht mehr als statische Methode deklariert werden. In diesem Fall kann diese Methode jedoch nur über die Klasse If aufgerufen werden Wenn Sie diese Methode mit einer Instanz aufrufen, führt dies zu Unregelmäßigkeiten.

class ClassA(object):
    def func_a():
        print('Hello Python')
if __name__ == '__main__':
    ClassA.func_a()
    # 以下使用实例调用会引发异常
    ca = ClassA()
    ca.func_a()
Nach dem Login kopieren

Ausnahmeinformationen:

func_a() akzeptiert 0 Positionsargumente, aber 1 wurde angegeben

Da func_a nicht als statische Methode deklariert ist, wird die Klasseninstanz ausgeblendet, wenn Aufruf von func_a Der Parameter self wird an func_a übergeben, während func_a selbst keine Parameter akzeptiert und somit eine Ausnahme auslöst.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie statische Methoden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage