【发布时间】:2019-03-28 18:20:35
【问题描述】:
我有什么办法可以在 python 的类级别 lru_cache 和 @property ,这样即使在为另一个类实例返回具有相同值的计算属性时,也不会重新计算该属性,而是从缓存中提取该属性。我想实现以下目标:
class SomeClass:
def __init__(self, num1, num2):
self.num1 = num1
self.num2 = num2
@property
@lru_cache
def sum(self): #this can even be a class method if needed, I don't really care
return self.num1 + self.num2
t1 = SomeClass(2,3)
t1.sum
>> 5 #calculating
t2 = SomeClass(2,3)
t2.sum
>> 5 #returning cache from t1, NOT calculating
【问题讨论】:
标签: python-3.x class caching properties functools