Heim > Backend-Entwicklung > Python-Tutorial > Gebundene Methoden, ungebundene Methoden und Funktionen in Python: Was ist der Unterschied?

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

DDD
Freigeben: 2024-10-27 16:29:01
Original
269 Leute haben es durchsucht

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

Gebundene Methoden, ungebundene Methoden und Funktionen: Ein unverwechselbares Trio in Python

Im Bereich der Python-Objektmanipulation das Verständnis der Unterschiede zwischen Funktionen, gebundene Methoden und ungebundene Methoden sind von entscheidender Bedeutung. Begeben wir uns auf eine Reise, um ihre Nuancen zu entschlüsseln.

Was ist eine Funktion?

Eine Funktion ist im Wesentlichen ein in sich geschlossener Codeblock, der eine bestimmte Aufgabe ausführt. Es wird mit den def- oder lambda-Anweisungen erstellt. Wenn eine Funktion innerhalb einer Klasse definiert wird, wandelt Python sie in eine ungebundene Methode um.

Was ist eine ungebundene Methode?

Eine ungebundene Methode ist eine Funktion, die an a angehängt ist Klasse, aber noch nicht an eine bestimmte Instanz dieser Klasse gebunden. In Python 2 werden ungebundene Methoden erstellt, wenn eine Funktion in eine Klassenanweisung eingefügt wird. In Python 3 wurde das Konzept ungebundener Methoden eliminiert.

Was ist eine gebundene Methode?

Eine gebundene Methode ist eine Funktion, die an eine Instanz gebunden wurde einer Klasse. Wenn auf eine gebundene Methode in einer Klasseninstanz zugegriffen wird, stellt sie der Methode automatisch die Instanz als ersten Parameter zur Verfügung.

Interkonvertierung

  • Funktion zur ungebundenen Methode: Verwenden Sie den Klassenkonstruktor „types.MethodType“:types.MethodType(function, None, class)
  • Ungebundene Methode zur gebundenen Methode: Greifen Sie auf die ungebundene Methode einer Klasse zu Instanz oder verwenden Sie die Methode get: unbound_method.__get__(instance, class)
  • An Funktion gebundene Methode: Rufen Sie die ursprüngliche Funktion mit dem Attribut im_func ab:bound_method.im_func

Praktische Implikationen

Der Hauptunterschied zwischen einer Funktion und einer ungebundenen Methode besteht darin, dass letztere weiß, zu welcher Klasse sie gehört, eine Funktion hingegen nicht. Dies wird deutlich, wenn versucht wird, diese Methoden ohne eine entsprechende Instanz aufzurufen.

Darüber hinaus fixiert das Binden einer Funktion an eine Instanz das erste Argument (self) an der Instanz und ersetzt so effektiv die gebundene Methode durch eine entsprechende Lambda-Funktion oder Teilfunktion.

Fazit

Das Verständnis der Unterschiede zwischen Funktionen, ungebundenen Methoden und gebundenen Methoden ist für eine effektive Objektmanipulation in Python von entscheidender Bedeutung. Jede dieser Formen dient einem einzigartigen Zweck und ihre gegenseitige Umwandlung ermöglicht die dynamische Bindung von Methoden an Instanzen.

Das obige ist der detaillierte Inhalt vonGebundene Methoden, ungebundene Methoden und Funktionen 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage