您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在python @ functools.lru_cache上使用cache_clear()

如何在python @ functools.lru_cache上使用cache_clear()

除了缓存之外,lru_cachedecorator还向修饰后的函数-cache_info和中添加了新功能cache_clear。下面是一个简单的示例,应解释它们如何工作:

>>> @lru_cache(5)
... def foo():
...     print('Executing foo...')
... 
>>> foo()
Executing foo...
>>> foo()
>>> foo.cache_info()
CacheInfo(hits=1, misses=1, maxsize=5, currsize=1)
>>> foo.cache_clear()
>>> foo()
Executing foo...

回答您的问题:

如果我有条件地将cache_clear()调用放在正在缓存的函数中,它将执行吗?

如果结果尚未缓存,则该函数将执行,并且应根据您的条件执行该函数cache_clear。不过,我不会使用这种解决方案- 一种好的做法是在缓存的对象外部进行无效化,否则在最坏的情况下根本没有失效的风险,在最佳情况下则看不到代码

如何从其他函数运行cache_clear()?

只需导入缓存的函数调用cache_clear它:

from x import foo

def bar():
    foo.cache_clear()
python 2022/1/1 18:34:14 有215人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶