functool的缓存和lru

互联网 行业动态 更新时间:2024-06-13 00:19:07

use*_*984 7

functools.cache在 3.9 版本中新增。

该文档指出:

简单的轻量级无界函数缓存。有时称为“记忆”。

返回与 相同lru_cache(maxsize=None),为函数参数的字典查找创建一个瘦包装器。因为它永远不需要驱逐旧值,所以它比lru_cache()大小限制更小更快。

文档中的示例:

@cache
def factorial(n):
    return n * factorial(n-1) if n else 1

>>> factorial(10)      # no previously cached result, makes 11 recursive calls
3628800
>>> factorial(5)       # just looks up cached value result
120
>>> factorial(12)      # makes two new recursive calls, the other 10 are cached
479001600

所以,简而言之:cachelru_cache(maxsize=None)完全一样(链接到cpython源)。但是在您不想限制缓存大小的情况下,使用cache可能会使代码更清晰,因为最近最少使用的无限制缓存没有多大意义。

更多推荐

缓存,functool,lru

本文发布于:2023-04-20 20:54:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/hyzx/064531a5e200de88d1b9d8b76608ed88.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:缓存   functool   lru

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!