Heim > Artikel > Backend-Entwicklung > So verwenden Sie statische Methoden
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.
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()
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()
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!