Короткий ответ lru_cache запоминает результаты вызовов функции по её аргументам и возвращает сохранённый результат при повторном вызове с теми же аргументами, но подходит только для чистых функций с хешируемыми аргументами и ограниченным набором входных значений. Как это работает подробнее Декоратор хранит словарь «аргументы → результат» и вытесняет записи по принципу LRU после достижения maxsize; повторный вызов с уже виденными аргументами возвращает значение из кэша без выполнения тела функции. Пример кода Что использовать на практике Практика. Полезен для дорогих детерминированных вычислений (например, парсинг конфигурации, построение неизменяемых структур) с небольшим количеством уникальных комбинаций аргументов; maxsize нужно подбирать осознанно, а не оставлять unbounded. Подводные камни Риск. Применяют lru_cache к функциям с побочными эффектами или недетерминированным результатом (текущее время, случайные числа, сетевые вызовы с изменяющимися данными); забывают, что аргументы должны быть хешируемыми (li