functools.cache
Простой неограниченный кэш результатов функции, добавленный в Python 3.9; эквивалент lru_cache(maxsize=None).
Сигнатура
@functools.cachecache легче и быстрее, чем lru_cache, так как не отслеживает порядок использования и не вытесняет записи. Подходит, когда множество различных аргументов невелико.
from functools import cache
@cache
def factorial(n):
return 1 if n == 0 else n * factorial(n - 1)
print(factorial(5)) # 120
print(factorial(6)) # 720 (factorial(5) взят из кэша)