3、内置模块functools
一、内置lru缓存
LRU是一种常用的缓存算法,即最近最少使用,如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小, LRU算法选择将最近最少使用的数据淘汰,保留那些经常被命中的数据。****
import time
from functools import lru_cache
@lru_cache() # 测试无缓存时将本行注释掉
def fib_memoization(number: int) -> int:
if number == 0: return 0
if number == 1: return 1
return fib_memoization(number-1) + fib_memoization(number-2)
start = time.time()
res = fib_memoization(33)
print(res)
print(f'耗时: {time.time() - start}s')
...About 3 min