ImportError: cannot import name 'cache' from 'functools'

ImportError: cannot import name 'cache' from 'functools'

我设法找到的所有解决方案都只在lru_cache上。但在我的例子中 dir(functools) 表明 lru_cache 确实存在于 functoolscache 不存在!我该如何解决这个问题?

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()