我想在我的代码中使用 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/