Patchen Klassen in Python
-
12-09-2019 - |
Frage
Angenommen, ich eine Python-Klasse, die ich auf eine zusätzliche Eigenschaft hinzufügen möchten.
Gibt es einen Unterschied zwischen
import path.MyClass
MyClass.foo = bar
und mit so etwas wie:
import path.MyClass
setattr(MyClass, 'foo', bar)
Wenn nicht, warum die Leute scheinen eher die zweite zu tun, als die erste? (ZB hier http:. //Concisionandconcinnity.blogspot. com / 2008/10 / Chaining-Affe-Patches-in-python.html )
Lösung
Die Anweisungen sind gleichwertig, aber setattr könnte verwendet werden, da es die dynamischste Wahl der beiden ist (mit setattr Sie eine Variable für den Attributnamen verwenden können.)
Siehe auch: http://docs.python.org/library/functions.html# setattr
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow