Heim >Backend-Entwicklung >Python-Tutorial >Python-Funktion classmethod()

Python-Funktion classmethod()

巴扎黑
巴扎黑Original
2017-08-21 13:43:032206Durchsuche

classmethod(function)

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!

Stellungnahme:
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