2024-04-17 23:22:51 发布
网友
我想在我的代码中使用lru缓存,但是,出现以下错误:
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)
问题中不包括导入行,但应该是:
from functools import lru_cache
或者,可以将函数decorator更改为:
@functools.lru_cache(maxsize=None)
使用前需要导入lru_cache:
lru_cache
from functools import lru_cache @lru_cache(maxsize=None) def fib(n): if n < 2: return n return fib(n-1) + fib(n-2)
或者在导入functools时使用全名引用它:
functools
import functools @functools.lru_cache(maxsize=None) def fib(n):
如果你真的只是写了import functools,那还不够。您需要使用from functools import lru_cache导入lru_cache符号,或者在尝试使用名称时对其进行限定,例如@functools.lru_cache。
import functools
@functools.lru_cache
在这方面,functools模块没有什么特别之处。所有的模块都是这样工作的。当您导入其他模块并使用其他函数时,您可能已经注意到了。
问题中不包括导入行,但应该是:
或者,可以将函数decorator更改为:
使用前需要导入
lru_cache
:或者在导入
functools
时使用全名引用它:如果你真的只是写了
import functools
,那还不够。您需要使用from functools import lru_cache
导入lru_cache
符号,或者在尝试使用名称时对其进行限定,例如@functools.lru_cache
。在这方面,functools模块没有什么特别之处。所有的模块都是这样工作的。当您导入其他模块并使用其他函数时,您可能已经注意到了。
相关问题 更多 >
编程相关推荐