Page 1 of 1

Erweitern einer Klasse in Python innerhalb eines Dekorators

Posted: 05 Jan 2025, 14:14
by Guest
Ich verwende einen Decorator, um bestimmte Klassen zu erweitern und ihnen einige Funktionen hinzuzufügen, etwa die folgende:

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')
Leider ist MyClass aufgrund der nicht globalen LocalClass
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?