Skip to main content
 首页 » 编程设计

Python自动备忘

2025年05月04日7telwanggs

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

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

问题是在不实际更改库代码的情况下可以做到吗?例如使用装饰器或类似的东西。

请您参考如下方法:

您想使用称为“内存”的技术;我的 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] 

但是你不检查行中的成员资格

if not k in factorial_memo: 

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

if (curr - prev) < fiveMin 
    # access Memo 
else 
    # start thread to get new data 

HTH