Was sind die Unterschiede zwischen ungebundenen, gebundenen und statischen Methoden in Python-Klassen?

Linda Hamilton
Freigeben: 2024-11-13 00:24:02
Original
301 Leute haben es durchsucht

What are the differences between unbound, bound, and static methods in Python classes?

Unterschiede zwischen Klassenmethoden in Python: ungebunden, gebunden und statisch

In Python können Klassenmethoden in drei Typen eingeteilt werden: ungebunden, gebunden und statisch. Das Verständnis ihrer Unterschiede ist für eine effektive objektorientierte Programmierung von entscheidender Bedeutung.

Gebundene Methoden

Gebundene Methoden sind solche, die beim Aufruf eine Instanz der Klasse als erstes Argument erfordern. Beispielsweise ist die method_one-Methode im folgenden Code eine gebundene Methode:

class Test(object):
  def method_one(self):
    print "Called method_one"
Nach dem Login kopieren

Um eine gebundene Methode aufzurufen, muss eine Instanz der Klasse bereitgestellt werden. Zum Beispiel:

a_test = Test()
a_test.method_one()
Nach dem Login kopieren

Ungebundene Methoden

Ungebundene Methoden sind im Wesentlichen Klassenmethoden, die nicht an eine Instanz der Klasse gebunden sind. In Python sind alle Klassenmethoden zunächst ungebunden. Beispielsweise ist die method_two-Methode im folgenden Codeausschnitt eine ungebundene Methode:

class Test(object):
  def method_two():
    print "Called method_two"
Nach dem Login kopieren

Ungebundene Methoden können nicht direkt für Instanzen der Klasse aufgerufen werden. Stattdessen müssen sie vor dem Aufruf an eine Instanz gebunden werden. Dies kann erreicht werden, indem der Klassenname als erstes Argument verwendet wird, wie unten gezeigt:

Test.method_two()
Nach dem Login kopieren

Statische Methoden

Statische Methoden sind Methoden, an die nicht gebunden ist eine Instanz einer Klasse und erfordern keine Instanz als erstes Argument. Sie werden mit dem @staticmethod-Dekorator deklariert. Zum Beispiel:

class Test(object):
    @staticmethod
    def method_three():
        print "Called method_three"
Nach dem Login kopieren

Statische Methoden können direkt für die Klasse oder für eine Instanz der Klasse aufgerufen werden. Zum Beispiel:

Test.method_three()
a_test = Test()
a_test.method_three()
Nach dem Login kopieren

Zusammenfassung

Zusammenfassend liegt der Hauptunterschied zwischen Klassenmethoden in Python in ihrem Bindungsstatus. Gebundene Methoden erfordern eine Instanz als erstes Argument, ungebundene Methoden müssen vor dem Aufruf an eine Instanz gebunden werden und statische Methoden sind nicht an Instanzen gebunden und erfordern keine Instanz als Argument.

Das obige ist der detaillierte Inhalt vonWas sind die Unterschiede zwischen ungebundenen, gebundenen und statischen Methoden in Python-Klassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage