首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python自动备忘录

Python自动备忘录
EN

Stack Overflow用户
提问于 2012-12-15 22:11:33
回答 1查看 115关注 0票数 2

我有一个库,它将一些REST api映射到一些对象模型。因此,使用API很容易。问题是,每次我获得对象的一些属性时,库都会向服务器发出实际的请求。从性能的角度来看,这并不是很好。

我想要的是添加记忆一段时间(比如5分钟)属性值的功能,并且仅在数据过期时才发出实际请求。

问题是,有没有可能在不实际改变库的代码的情况下做到这一点?例如,使用装饰器或类似的东西。

EN

回答 1

Stack Overflow用户

发布于 2012-12-15 22:22:45

你想使用一种叫做“记忆”的技术;我的10秒谷歌搜索给了我另一个SO链接,What is memoization and how can I use it in Python?

代码语言:javascript
复制
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]

但是,您不检查队列中的成员资格。

代码语言:javascript
复制
if not k in factorial_memo:

你需要一个超时处理程序-

代码语言:javascript
复制
if (curr - prev) < fiveMin
    # access Memo
else
    # start thread to get new data

HTH

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13892929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档