Unterklassen von Pythons `Eigenschaft`
In einer meiner Klassen habe ich eine Reihe von Eigenschaften, die sich beim Abrufen und Einstellen sehr ähnlich verhalten. Also habe ich die Argumente dazu abstrahiertproperty
in eine Fabrikfunktion:
def property_args(name):
def getter(self):
# do something
return getattr(self, '_' + name)
def setter(self, value)
# do something
setattr(self, '_' + name, value)
return getter, setter
class MyClass(object):
def __init__(self):
self._x = None
x = property(*property_args('x')) # obviously there's more than one of these IRL
Allerdings habe ich das inzwischen entdecktproperty
ist in der Tat eine Klasse, und eine Unterklasse wäre perfekt dafür. Ich kann nichts in der Dokumentation finden, das erklärt, was ich zum Überschreiben benötige (und die Argumente der Signaturen von__init__
etc), und ich möchte nicht wirklich im C-Quellcode dafür auf die Jagd gehen müssen. Weiß jemand, wo ich diese Informationen finden kann?