栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

除了缓存之外,

lru_cache
decorator还向修饰后的函数-
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 foodef bar():    foo.cache_clear()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/640357.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号