Chinesische Beschreibung:
classmethod wird verwendet, um eine Klassenmethode als Klassenmethode anzugeben Ein solcher Parameter. Die Methode der angegebenen Klasse ist eine Instanzmethode und die Verwendungsmethode ist wie folgt:
class C: @classmethod def f(cls, arg1, arg2, ...): ...
Die Klassenmethode kann entweder direkt als Klasse (C.f()) oder als aufgerufen werden Instanz (C().f()).
Version : Neu in Python2.2, neue Funktionen hinzugefügt in Python2.4. Immer noch in Python3 verfügbar.
Englische Beschreibung:
Gibt eine Klassenmethode für eine Funktion zurück.
Eine Klassenmethode empfängt die Klasse als implizites erstes Argument, genau wie eine Instanzmethode empfängt die Instanz. Um eine Klassenmethode zu deklarieren, verwenden Sie diese Redewendung:
class C: @classmethod def f(cls, arg1, arg2, ...): ...
Die @classmethod-Form ist ein Funktionsdekorator – Einzelheiten finden Sie in der Beschreibung der Funktionsdefinitionen in Funktionsdefinitionen.
Es kann entweder für die Klasse (z. B. C.f()) oder für eine Instanz (z. B. C().f()) aufgerufen werden. Die Instanz wird außer ihrer Klasse ignoriert, wenn eine Klassenmethode für eine abgeleitete Klasse aufgerufen wird , das abgeleitete Klassenobjekt wird als implizites erstes Argument übergeben.
Klassenmethoden unterscheiden sich von statischen C++- oder Java-Methoden. Wenn Sie diese benötigen, siehe staticmethod() in diesem Abschnitt.
Für Weitere Informationen zu Klassenmethoden finden Sie in der Dokumentation zur Standardtyphierarchie in Die Standardtyphierarchie.
Neu in Version 2.2.
Geändert in Version 2.4: Funktion Decorator-Syntax hinzugefügt.
Codebeispiel:
>>> class C: ... @classmethod ... def f(self): ... print "This is a class method" ... >>> C.f() This is a class method >>> c = C() >>> c.f() This is a class method >>> class D: ... def f(self): ... print " This is not a class method " ... >>> D.f() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unbound method f() must be called with D instance as first argument (got nothing instead) >>> d = D() >>> d.f() This is not a class method
Das obige ist der detaillierte Inhalt vonPython-Funktion classmethod(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!