當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python functools.cache用法及代碼示例


用法:

@functools.cache(user_function)

簡單的輕量級無界函數緩存。有時稱為 “memoize”

返回與 lru_cache(maxsize=None) 相同的返回值,圍繞函數參數的字典查找創建一個瘦包裝器。因為它永遠不需要逐出舊值,所以它比具有大小限製的 lru_cache() 更小更快。

例如:

@cache
def factorial(n):
    return n * factorial(n-1) if n else 1

>>> factorial(10)      # no previously cached result, makes 11 recursive calls
3628800
>>> factorial(5)       # just looks up cached value result
120
>>> factorial(12)      # makes two new recursive calls, the other 10 are cached
479001600

3.9 版中的新函數。

相關用法


注:本文由純淨天空篩選整理自python.org大神的英文原創作品 functools.cache。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。