我們來實(shí)現(xiàn)一個(gè)斐波那契計(jì)算器,并使用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]
那個(gè)maxsize參數(shù)是告訴lru_cache,最多緩存最近多少個(gè)返回值。
我們也可以輕松地對(duì)返回值清空緩存,通過這樣:
fib.cache_clear()