Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich Methoden zu vorhandenen Python-Objekten hinzufügen?

Wie kann ich Methoden zu vorhandenen Python-Objekten hinzufügen?

Linda Hamilton
Freigeben: 2024-12-17 14:51:15
Original
969 Leute haben es durchsucht

How Can I Add Methods to Existing Python Objects?

Hinzufügen von Methoden zu vorhandenen Objektinstanzen in Python

In Python wird generell davon abgeraten, Methoden zu vorhandenen Objekten hinzuzufügen (d. h. nicht in die Klassendefinition). Es gibt jedoch einige Ausnahmen, in denen dies erforderlich sein kann.

Gebundene Methoden vs. Funktionen

In Python werden Methoden von Funktionen dadurch unterschieden, dass sie an eine Objektinstanz gebunden sind . Beim Aufruf einer Methode wird die Instanz automatisch als erstes Argument übergeben.

Funktionen hingegen sind nicht an eine bestimmte Instanz gebunden und müssen explizit mit den entsprechenden Argumenten aufgerufen werden.

Klassenattribute ändern

Wenn Sie allen Instanzen einer Klasse eine Methode hinzufügen möchten, können Sie die Klasse einfach ändern Definition:

class A:
    def bar(self):
        print("bar")

a = A()
a.bar()  # Output: "bar"
Nach dem Login kopieren

Einzelne Instanzen ändern

Wenn Sie jedoch einer bestimmten Instanz einer Klasse eine Methode hinzufügen müssen, werden die Dinge etwas komplizierter. Sie können eine Funktion nicht direkt einem Instanzattribut zuweisen, da diese nicht gebunden wird:

def barFighters():
    print("barFighters")

a.barFighters = barFighters
a.barFighters()  # TypeError: barFighters() takes exactly 1 argument
Nach dem Login kopieren

Funktionen mit MethodType binden

Um eine Funktion richtig zu binden Für eine Objektinstanz können Sie die MethodType-Funktion aus dem Typenmodul verwenden:

import types

a.barFighters = types.MethodType(barFighters, a)
a.barFighters()  # Output: "barFighters"
Nach dem Login kopieren

Diese Methodenbindung stellt sicher, dass die Funktion mit der Instanz als aufgerufen wird das erste Argument beim Aufruf.

Das obige ist der detaillierte Inhalt vonWie kann ich Methoden zu vorhandenen Python-Objekten hinzufügen?. 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