ImportError: cannot import name 'cache' from 'functools'
ImportError: cannot import name 'cache' from 'functools'
我设法找到的所有解决方案都只在lru_cache
上。但在我的例子中 dir(functools)
表明 lru_cache
确实存在于 functools
而 cache
不存在!我该如何解决这个问题?
documentation for functools.cache
声明它仅在 Python 3.9 之后可用。如果您使用的是早期版本,那么文档还指出它与使用 lru_cache(maxsize=None)
相同,因此这可能是您的最佳选择。
from functools import lru_cache
@lru_cache(maxsize=128)
def fib(n):
if n <= 1:
return n
return fib(n-1) + fib(n-2)
def main():
for i in range(1000):
print(i, fib(i))
print('Done')
if __name__ == '__main__':
main()
我设法找到的所有解决方案都只在lru_cache
上。但在我的例子中 dir(functools)
表明 lru_cache
确实存在于 functools
而 cache
不存在!我该如何解决这个问题?
documentation for functools.cache
声明它仅在 Python 3.9 之后可用。如果您使用的是早期版本,那么文档还指出它与使用 lru_cache(maxsize=None)
相同,因此这可能是您的最佳选择。
from functools import lru_cache
@lru_cache(maxsize=128)
def fib(n):
if n <= 1:
return n
return fib(n-1) + fib(n-2)
def main():
for i in range(1000):
print(i, fib(i))
print('Done')
if __name__ == '__main__':
main()