python and some backend notes(ru)
108 subscribers
5 photos
1 file
192 links
Личные заметки и ссылки на статьи по python и backend вопросам, но может кому-то тоже будет интересно
Download Telegram
Кэширование (мемоизация) с помощью lru_cache

import functools
import time

# кэширование до 12 различных результатов
@functools.lru_cache(maxsize=12)
def slow_func(x):
time.sleep(2) # Имитируем длительные вычисления
return x

slow_func(1) # ... ждём 2 секунды до возврата результата
slow_func(1) # результат уже кэширован - он возвращается немедленно!

slow_func(3) # ... опять ждём 2 секунды до возврата результата

#lru_cache #decorator