我們來實現(xiàn)一個斐波那契計算器,并使用lru_cache
。
from functools import lru_cache
@lru_cache(maxsize=32)
def fib(n):
if n < 2:
return n
return fib(n-1) + fib(n-2)
>>> print([fib(n) for n in range(10)])
# Output: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
那個maxsize
參數(shù)是告訴lru_cache
,最多緩存最近多少個返回值。
我們也可以輕松地對返回值清空緩存,通過這樣:
fib.cache_clear()