python lru_cache裝飾器的作用
ru_cache裝飾器實(shí)現(xiàn)了備忘功能,能夠優(yōu)化函數(shù)執(zhí)行速度,他把耗時(shí)的函數(shù)的結(jié)果保存起來(lái),避免傳入相同參數(shù)時(shí)重復(fù)計(jì)算,但是他的緩存也不會(huì)無(wú)限增長(zhǎng),一段時(shí)間不用的條目會(huì)刪除。被lru_cache裝飾的函數(shù)的參數(shù)必須時(shí)可散列的。
lru_cache有兩個(gè)可選參數(shù):
- maxsize:指定存儲(chǔ)多少個(gè)調(diào)用的結(jié)果。
- typed:True 把不同參數(shù)類(lèi)型得到的結(jié)果分開(kāi)保存,即相同的浮點(diǎn)數(shù)和整數(shù)區(qū)分開(kāi)。
from functools import lru_cache
@lru_cache(maxsize=128, typed=False)
def func():
pass