Das liegt daran, dass Deskriptoren nur als Klassenattribute und nicht als Instanzattribute definiert werden sollten:
Von Dokumenten :
Die folgenden Methoden gelten nur für eine Instanz der Klasse enthält die Methode (eine sogenannte Deskriptor-Klasse) erscheint in einem Besitzerklasse ( Der Deskriptor muss entweder in der Klasse des Besitzers sein Wörterbuch oder im Klassenwörterbuch für einen seiner Eltern ).
Damit Deskriptor auch mit Instanzattributen funktioniert, müssen Sie die Methode __getattribute__
von BusinessLogic
überschreiben. (Haben Sie das nicht gründlich getestet, aber es funktioniert in Ihrem Fall gut):
Falls Sie einen Datendeskriptor haben, müssen Sie auch den __setattr__
-Teil verarbeiten.
Tags und Links python descriptor