python函数缓存

mac2024-03-20  31

递归是我们常用的一种方式之一,特别是当表达式比较复杂难以化解成循环来求解的时候。但递归经常会进行重复计算,这无形中增大了计算开销,如果我们可以把计算的中间结果保存起来就好了。python当然优雅的实现了这一点。不多说,直接上代码:

# 函数缓存,maxsize设置缓存多少个最近的值。 from functools import lru_cache @lru_cache(maxsize=9) def fbnc(n): if n <= 1: return 1 else: return fbnc(n -1) + fbnc(n - 2) print([fib(n) for n in range(10)]) # 清空缓存 fbnc.cache_clear()
最新回复(0)