Aquí está mi problema. Quiero que la siguiente clase tenga muchos atributos de propiedad. Podría escribirlos todos como foo
y bar
, o basándome en algunos otros ejemplos que he visto, parece que podría usar un decorador de clases, una metaclase o anular el método __new__
para establecer las propiedades automágicamente. Simplemente no estoy seguro de cuál sería la forma "correcta" de hacerlo.¿Debo usar una metaclass, decorador de clase o anular el método __new__?
class Test(object):
def calculate_attr(self, attr):
# do calculaty stuff
return attr
@property
def foo(self):
return self.calculate_attr('foo')
@property
def bar(self):
return self.calculate_attr('bar')
En caso de duda, siempre van con simple y evidente. Si * usted * no puede entenderlo fácilmente, tampoco los tontos (como yo) a quienes se les pedirá que mantengan su código. –
Cuando cambia la naturaleza de sus preguntas, generalmente lo mejor es abrir una nueva. –