Subclasificando la propiedad `de Python
En una de mis clases, tengo varias propiedades que hacen cosas muy similares para obtener y configurar. Así que abstraí los argumentos paraproperty
en una función de fábrica:
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
Sin embargo, desde entonces he descubierto queproperty
es de hecho una clase, y la subclasificación sería perfecta para esto. No puedo encontrar nada en la documentación que explique lo que necesito anular (y las firmas de argumentos de__init__
etc), y realmente no quiero tener que buscar el código fuente en C. ¿Alguien sabe donde puedo encontrar esta información?