Check

Детали работы `functools.lru_cache`

Python Senior Яндекс
Как работает `functools.lru_cache`? Какие ограничения есть у функций, к которым его можно применять, и что происходит при `maxsize=None`?
Ответы
LRU cache
`lru_cache` кеширует результаты функции по её позиционным и именованным аргументам, используя словарь + двусвязный список (LRU). Ограничения: - аргументы должны быть хешируемыми (используются как ключи словаря); - не стоит использовать для функций с побочными эффектами (кеш сломает семантику). `maxsize=None` превращает кеш в неограниченный (по сути обычный memoization без вытеснения). Это может привести к утечке памяти при большом разнообразии аргументов.