2
我有一个库,它将一些REST API映射到某个对象模型。所以使用API很容易。问题是每次我得到某个对象的属性时,库都会向服务器发出实际的请求。从性能角度来看这并不好。Python自动备忘录
我想要的是添加记忆属性值一段时间(比如说5分钟)的功能,并且仅在数据过期时才进行实际请求。
问题是有可能在不改变库代码的情况下做到这一点?例如使用装饰器或类似的东西。
我有一个库,它将一些REST API映射到某个对象模型。所以使用API很容易。问题是每次我得到某个对象的属性时,库都会向服务器发出实际的请求。从性能角度来看这并不好。Python自动备忘录
我想要的是添加记忆属性值一段时间(比如说5分钟)的功能,并且仅在数据过期时才进行实际请求。
问题是有可能在不改变库代码的情况下做到这一点?例如使用装饰器或类似的东西。
你想使用称为'memoizing'的技术;我10S谷歌搜索给了我另一个SO链接, What is memoization and how can I use it in Python?
factorial_memo = {}
def factorial(k):
if k < 2: return 1
if not k in factorial_memo:
factorial_memo[k] = k * factorial(k-1)
return factorial_memo[k]
但是你DONOT在该行
if not k in factorial_memo:
检查会员,你需要超时处理程序 -
if (curr - prev) < fiveMin
# access Memo
else
# start thread to get new data
HTH
可能的重复[什么是memoization,我怎么用它在Python?](http://stackoverflow.com/questions/1988804/what-is-memoization-and-how-can-i-use-it-in-python) – lesmana