functools.lru_cache
是 Python 标准库中提供的一个装饰器,用于缓存函数的结果,以加快函数的执行速度。使用@functools.lru_cache(maxsize=None)
装饰器来应用lru_cache
,其中maxsize
参数用于指定缓存的最大容量,默认为None
表示不限制缓存大小。以下是一个示例代码:
from functools import lru_cache
@lru_cache(maxsize=128)
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)
# 第一次调用会计算结果,并将结果缓存
print(fibonacci(5))
# 第二次调用时直接返回缓存中的结果
print(fibonacci(5))
上述代码中,定义了一个fibonacci
函数,它使用@lru_cache
装饰器进行了缓存。在第一次调用fibonacci(5)
时,会计算结果并将其缓存,然后在第二次调用时直接返回缓存中的结果,而不需要再次计算。