Almacenar valores calculados en un objeto
Recientemente he estado escribiendo un montón de código como este:
class A:
def __init__(self, x):
self.x = x
self._y = None
def y(self):
if self._y is None:
self._y = big_scary_function(self.x)
return self._y
def z(self, i):
return nice_easy_function(self.y(), i)
En una clase dada, puedo tener varias cosas trabajando asíy
, y es posible que tenga otras cosas que usan los valores precalculados almacenados. ¿Es esta la mejor manera de hacer las cosas o recomendarías algo diferente?
Tenga en cuenta que no calculo previamente aquí porque podría usar una instancia deA
sin hacer uso dey
.
He escrito el código de muestra en Python, pero estaría interesado en respuestas específicas a otros idiomas si es relevante. Por el contrario, me gustaría saber de Pythonistas si sienten que este código es Pythonic o no.