我想在我的代码中使用 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
,那还不够。您需要使用lru_cache
导入from functools import lru_cache
符号,或者在尝试使用名称时需要限定名称,例如@functools.lru_cache
。
在这方面,functools模块没有什么特别的。所有模块都以这种方式工作。您可能已经注意到,当您导入其他模块并使用其他功能时。
关于python - functools 中 lru 缓存的使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36684392/