📅  最后修改于: 2023-12-03 14:56:02.133000             🧑  作者: Mango
在 Python 编程中,经常会遇到需要缓存函数操作结果的情况。Python 的标准库中有一个 functools 模块,其中提供了一个用于缓存函数结果的装饰器 lru_cache。但是,如果你输入 import functools_lru_cache
,会发现系统提示没有名为 functools_lru_cache
的模块。那么,这是为什么呢?
原来,Python 3.2 及以上版本引入了 lru_cache 装饰器,它已经被整合进了 functools 模块中,并且成为了 Python 的内置函数。因此,我们只需要使用 from functools import lru_cache
就可以导入 lru_cache 装饰器,使用起来也十分方便。
下面是一个使用 lru_cache 装饰器实现斐波那契数列的例子:
from functools import lru_cache
@lru_cache(maxsize=None)
def fib(n):
if n<=1:
return n
else:
return fib(n-1)+fib(n-2)
这个例子中,我们使用了 @lru_cache(maxsize=None)
将函数 fib
进行了修饰,表示使用缓存的方式来储存函数的结果。此时, fib
函数的结果会被缓存起来,当下次使用此函数时,如果输入的参数相同,则直接返回缓存中的结果,不再执行函数体中的计算。这样就可以提高程序的运行效率。
总之,在 Python 中使用 lru_cache 装饰器,已经不需要导入 functools_lru_cache
模块了,直接使用内置的 functools 模块即可。