Ich habe die folgende Wrapper-Klasse geschrieben. Ich möchte __setattr__
so definieren, dass es alle Attribute an die umschlossene Klasse umleitet. Dies verhindert jedoch, dass ich die Wrapper-Klasse initialisieren kann. Irgendeine elegante Möglichkeit, das zu beheben?Saubere Möglichkeit, '__setattr__` bis nach der Initialisierung zu deaktivieren
class Wrapper:
def __init__(self, value):
# How to use the default '__setattr__' inside '__init__'?
self.value = value
def __setattr__(self, name, value):
setattr(self.value, name, value)
überschrieben Was bedeutet 'Wrapper' wickeln? Warum erbt es nicht "Objekt"? –
@Tichodroma Es wickelt alles ein. Ich benutze es in einer GUI-Anwendung; Der Wrapper benachrichtigt Listener, wenn das eingeschlossene Objekt geändert wird. Es erbt nicht von "Objekt", weil ich nur Python 3 verwenden möchte. –