Inicialización perezosa de miembros de la clase Python
Me gustaría saber cuál es la forma de Python de inicializar un miembro de la clase, pero solo cuando se accede, si se accede. Probé el código de abajo y está funcionando, pero ¿hay algo más simple que eso?
class MyClass(object):
_MY_DATA = None
@staticmethod
def _retrieve_my_data():
my_data = ... # costly database call
return my_data
@classmethod
def get_my_data(cls):
if cls._MY_DATA is None:
cls._MY_DATA = MyClass._retrieve_my_data()
return cls._MY_DATA