use*_*827 2 python lru functools
我想在我的代码中使用lru_cache,但是,我收到此错误:
NameError: name 'lru_cache' is not defined
Run Code Online (Sandbox Code Playgroud)
我的代码中有一个导入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)
Run Code Online (Sandbox Code Playgroud)
如果你真的只是写作import functools,那还不够.您需要导入lru_cache符号from functools import lru_cache,或者在尝试使用它时需要限定名称,例如@functools.lru_cache.
在这方面,functools模块没什么特别之处.所有模块都以这种方式工作 当您导入其他模块并使用其他功能时,您可能已经注意到了.
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)
Run Code Online (Sandbox Code Playgroud)
或者在导入时使用全名引用它functools:
import functools
@functools.lru_cache(maxsize=None)
def fib(n):
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8201 次 |
| 最近记录: |