Erweitern einer Klasse in Python innerhalb eines Dekorators
Posted: 05 Jan 2025, 14:14
Ich verwende einen Decorator, um bestimmte Klassen zu erweitern und ihnen einige Funktionen hinzuzufügen, etwa die folgende:
Leider ist MyClass aufgrund der nicht globalen LocalClass
nicht mehr auswählbar
Code: Select all
def useful_stuff(cls):
class LocalClass(cls):
def better_foo(self):
print('better foo')
return LocalClass
@useful_stuff
class MyClass:
def foo(self):
print('foo')
nicht mehr auswählbar
Code: Select all
AttributeError: Can't pickle local object 'useful_stuff..LocalClass'
- Ich muss meinen Unterricht aufpeppen. Können Sie ein besseres Design empfehlen?
- Angesichts der Tatsache, dass es in einer Klasse mehrere Dekoratoren geben kann, wäre es sinnvoll, zur Mehrfachvererbung zu wechseln, indem MyClass die gesamte Funktionalität erbt bessere Option?