В Python есть встроенный кэш, о котором многие забывают. Если функция… — Python Community — TG.ME

В Python есть встроенный кэш, о котором многие забывают.

Если функция часто вызывается с одними и теми же аргументами, не всегда нужно руками писать словарь, Redis или отдельный слой кэширования.

Иногда хватает lru_cache из стандартного модуля functools.

Пример:


from functools import lru_cache

@lru_cache(maxsize=128)
def get_user(user_id):
print("Запрос к базе")
return {"id": user_id}


Первый вызов выполнит функцию.

Повторный вызов с тем же user_id вернёт результат из кэша.


get_user(1) # Запрос к базе
get_user(1) # уже из кэша


maxsize ограничивает размер кэша, а старые значения вытесняются по принципу LRU: least recently used.

Полезно для:

• тяжёлых вычислений

• запросов к API

• чтения редко меняющихся данных

• рекурсивных алгоритмов

Главное помнить: lru_cache хорошо работает, когда результат функции зависит только от её аргументов.

@Python_Community_ru
June 26, 2026 634 8