В 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

t.me/Python_Community_ru/3176Translating to English…
June 26, 2026 634 8