Gebundene, ungebundene und statische Methoden in Python: Was ist der Unterschied?

Barbara Streisand
Freigeben: 2024-11-17 18:52:02
Original
756 Leute haben es durchsucht

Bound, Unbound, and Static Methods in Python: What's the Difference?

Unterschiede zwischen Klassenmethoden in Python: Erkunden gebundener, ungebundener und statischer Methoden

In Python ist das Verständnis der Unterschiede zwischen Klassenmethoden von entscheidender Bedeutung für effektive objektorientierte Programmierung. Unter den verschiedenen Arten von Klassenmethoden haben gebundene, ungebundene und statische Methoden eine besondere Bedeutung. Dieser Artikel befasst sich mit ihren wichtigsten Unterschieden und ihren Auswirkungen auf den Methodenaufruf in Python.

Gebundene Methoden

Gebundene Methoden sind der Standardtyp von Methoden, die einem Objekt zugeordnet sind. Wenn ein Objekt instanziiert wird, werden automatisch gebundene Methoden für seine Methoden erstellt. Der erste Parameter der gebundenen Methode stellt die Objektreferenz dar, für die die Methode aufgerufen wird. Dies ermöglicht den Zugriff auf die Instanzvariablen und andere Methoden des Objekts. Im bereitgestellten Beispiel ist die Funktion „method_one“ eine gebundene Methode und ihr Aufruf erfordert eine Objektreferenz wie gezeigt:

a_test.method_one()
Nach dem Login kopieren

Ungebundene Methoden

Ungebundene Methoden nicht einem bestimmten Objekt zugeordnet werden. Ihnen fehlt ein Selbstparameter, da sie nicht für die Arbeit an bestimmten Instanzen gedacht sind. Der Aufruf einer ungebundenen Methode erfordert die explizite Übergabe des Objekts als erstes Argument. Im Beispielcode-Snippet ist method_two eine ungebundene Methode, und ihr Aufruf löst einen Fehler aus, ohne dass ein Argument angegeben wird:

a_test.method_two()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: method_two() takes no arguments (1 given) 
Nach dem Login kopieren

Statische Methoden

Statische Methoden sind ähnlich zu ungebundenen Methoden, da sie keinem bestimmten Objekt zugeordnet sind. Im Gegensatz zu ungebundenen Methoden akzeptieren statische Methoden jedoch keine Objektreferenz als Parameter und sind daher nicht vom Instanzstatus abhängig. Um eine statische Methode zu deklarieren, wird ein Dekorator wie @staticmethod verwendet. Dieser Dekorator teilt der Metaklasse mit, dass die Methode keine gebundenen Methoden für die Klasse erstellen soll.

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

Mit einer statischen Methode ist der Aufruf sowohl für Objektinstanzen als auch für die Klasse selbst möglich:

a_test.method_two()
Test.method_two()
Nach dem Login kopieren

Durch das Verständnis der subtilen Unterschiede zwischen gebundenen, ungebundenen und statischen Methoden können Entwickler die Leistungsfähigkeit der objektorientierten Funktionen von Python effektiv nutzen, was zu robusteren und flexibleren Codedesigns führt.

Das obige ist der detaillierte Inhalt vonGebundene, ungebundene und statische Methoden in Python: Was ist der Unterschied?. 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