from functools import lru_cache
# lru_cache 是一个装饰器,用于缓存函数的返回值。
# 它使用最近最少使用(LRU)算法来管理缓存,当缓存满时会移除最久未使用的缓存项。
@lru_cache(maxsize=128) # maxsize 参数定义了缓存的最大大小,默认是 128。如果设置为 None,则表示无限制。
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)
# 调用示例
print(fibonacci(10)) # 输出: 55
print(fibonacci(5)) # 输出: 5
print(fibonacci(10)) # 这次调用会被缓存命中,直接返回结果,不会重新计算
解释说明:
@lru_cache(maxsize=128):这是一个装饰器,用于缓存函数的结果。maxsize参数指定了缓存的最大条目数,超过这个数量后,最久未使用的缓存项将被移除。fibonacci(n):这是一个递归函数,用于计算斐波那契数列的第 n 项。由于使用了 lru_cache,重复的计算会被缓存,从而大大提高性能。上一篇:python 数组转json
下一篇:python scheduler
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站