nimmt drei Argumente ein: das Objekt, den Namen des Attributs (der der Name der Methode ist) und der Wert (der die Methode selbst ist). Die Methode selbst sollte eine Funktion sein. setattr()
fügt diese Funktion als Methode mit dem Namen setattr()
zur
-Klasse unverändert bleibt. Diese Methode ist nur für die spezifische Instanz
verfügbar. Andere Instanzen vonclass MyClass: def __init__(self, value): self.value = value obj = MyClass(10) def new_method(self): print(f"The value is: {self.value}") setattr(obj, 'my_new_method', new_method) obj.my_new_method() # Output: The value is: 10
new_method
setattr()
my_new_method
Komposition: obj
, anstatt von einer Klasse zu erben, erstellen Sie eine Instanz einer anderen Klasse innerhalb Ihrer Klasse. Auf diese Weise können Sie die Funktionalität der anderen Klasse nutzen, ohne die ursprüngliche Klassenstruktur zu ändern. Sie bieten eine Möglichkeit, Funktionen ohne strenge Eltern-Kind-Beziehung hinzuzufügen. Sie verlassen sich jedoch immer noch auf die Vererbung, wenn auch kontrollierter. Dies ist besonders nützlich, um ein einzelnes Objekt spezifisches Funktionalität hinzuzufügen. Es ist leistungsstark, kann aber riskant sein, wenn sie nicht sorgfältig behandelt werden, da es zu unerwarteten Nebenwirkungen führen und den Code schwerer machen kann. Verwenden Sie dies mit extremer Vorsicht. Hier sind einige Best Practices: MyClass
Das obige ist der detaillierte Inhalt vonWie füge ich Dynamik Methoden zu Objektinstanzen in Python hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!