estoy escribiendo una clase en Python y tengo un atributo que va a tomar un tiempo relativamente largo para calcular, por lo sólo quiero hacerlo una vez. Además, no será necesaria por cada instancia de la clase, por lo no quiero hacerlo de manera predeterminada en__init__
.atributos "Caching" de clases en Python
Soy nuevo en Python, pero no a la programación. Puedo llegar a una manera de hacer esto con bastante facilidad, pero he encontrado una y otra vez que la forma 'Pythonic' de hacer algo es a menudo mucho más simple que lo que me ocurre con el uso de mi experiencia en otros idiomas.
¿Hay una manera 'correcta' de hacer esto en Python?
IMO ninguna de estas respuestas es correcta. OP quería una propiedad _class_ en caché, por ejemplo 'Foo.something_expensive'. Todas estas respuestas son sobre las _instance_ propiedades almacenadas en caché, lo que significa que 'something_expensive' se volverá a calcular para cada instancia nueva, que es menos que óptima en la mayoría de los casos – steve