functools.cache

Простой неограниченный кэш результатов функции, добавленный в Python 3.9; эквивалент lru_cache(maxsize=None).

Сигнатура@functools.cache

cache легче и быстрее, чем 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) взят из кэша)
← Все записи: Модули collections и functools
Поддержать проект