考虑以下:
@property
def name(self):
if not hasattr(self, '_name'):
# expensive calculation
self._name = 1 + 1
return self._name
Run Code Online (Sandbox Code Playgroud)
我是新手,但我认为缓存可能会被装入装饰器中.只有我找不到喜欢它的人;)
PS真正的计算不依赖于可变值
我在python中编写一个类,我有一个属性需要相对长的时间来计算,所以我只想做一次.此外,它会不会被类的每个实例需要的,所以我不想在默认情况下做到这一点在__init__.
我是Python新手,但不是编程.我可以很容易地找到一种方法来做到这一点,但我一次又一次地发现,使用我在其他语言中的经验,"Pythonic"做事的方式通常比我想象的要简单得多.
在Python中有没有"正确"的方法呢?