ID EN
Functools

cache

Python 3.11

Simple lightweight unbounded function cache. Sometimes called “memoize”.

Syntax

PYTHON
@functools.cache(user_function)

Examples

Example 1
PYTHON
@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

See Also

lru_cache()