python - functools中lru缓存的使用

标签 python lru functools

我想在我的代码中使用 lru_cache,但是,我得到这个错误:

NameError: name 'lru_cache' is not defined

我的代码中确实有一个 import functools 但这没有帮助

示例代码在这里:

https://docs.python.org/3/library/functools.html

@lru_cache(maxsize=None)
def fib(n):
    if n < 2:
        return n
    return fib(n-1) + fib(n-2)

最佳答案

如果您真的只是编写了import functools,那么这还不够。您需要使用 from functools import lru_cache 导入 lru_cache 符号,或者在尝试使用它时需要限定名称,例如 @functools.lru_cache

在这方面 functools 模块没有什么特别之处。 所有 模块都以这种方式工作。当您导入其他模块并使用其他功能时,您可能已经注意到。

关于python - functools中lru缓存的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36684392/

相关文章:

python - 行中数字和字符串的最小值/最大值

python - 在子进程中使用标准输入

matlab - Matlab中是否存在函数缓存?

python - functools.partial 关于类方法

python - Pandas 数据框计数矩阵

python - 使用 flask 上传文件到亚马逊s3

java - 如何使用最简单、最少的数据结构来实现 LFU 缓存?

java - 含咖啡因的 LRU

python - 使@lru_cache忽略一些函数参数

python - 如何将包装函数与 functools.partial 进行比较?