TGViewer
Python RU Python RU @pro_python_code · 12.4K subscribers
Post #2098 1.52K
Один декоратор в Python может убрать сотни лишних запросов

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

Он запоминает результат функции и при повторном вызове с теми же аргументами не считает всё заново.


from functools import lru_cache

@lru_cache(maxsize=128)
def get_user(user_id: int):
print("Идём в базу...")
return load_user_from_db(user_id)

get_user(42) # запрос в базу
get_user(42) # результат из кэша


Где полезно:

1. дорогие вычисления
2. парсинг конфигов
3. API-запросы
4. рекурсивные алгоритмы
5. справочники и метаданные

Есть и продвинутые фишки:


get_user.cache_info()
get_user.cache_clear()


Первое покажет hit/miss статистику, второе очистит кэш.

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

Для случайных данных, времени, прав доступа и часто меняющейся базы лучше не использовать вслепую.
  • 👍 5
  • ❤ 2
More from @pro_python_code
  1. Sep 21, 2026Kubernetes NodeLocal DNSCache: ускоряем DNS-запросы 🚀 Без NodeLocal DNSCache DNS-запрос о…
  2. Sep 13, 2026🔥 Один из лучших обучающих курсов на StepiK по SQL SQL можно знать годами и всё равно тер…
  3. Sep 11, 2026⚡️ DeepSeek открыла веса V4.1-Flash DeepSeek выложила свежайшую DeepSeek-V4.1-Flash, мульт…
  4. Sep 11, 2026Команды ждут тебя на треке программирование роботов на МТС True Tech Champ 2026 — всеросси…
  5. Sep 10, 2026⚡️ DeepSeek выпустила V4.1 Flash Ноую модель уже раскатывают в веб-чате и мобильных прилож…
  6. Sep 7, 2026🧠 Как обучить нейросеть на Python с нуля Пошаговый разбор полного процесса: * подготовка…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →