Встречается на 2% собеседований по Python

Как работал с кэшированием

В Python для кэширования часто используют functools.lru_cache для мемоизации функций. Это декоратор, который сохраняет результаты вызовов функции с определенными аргументами, избегая повторных вычислений.

Пример:

python
from functools import lru_cache

@lru_cache(maxsize=128)
def expensive_func(n):
print(f"Calculating for {n}...")
return n * n

print(expensive_func(5)) # Вычисляется
print(expensive_func(5)) # Берётся из кэша

text

**Нюансы:**  
- `maxsize` ограничивает размер кэша (None — без ограничений).  
- Для изменяемых аргументов (например, словари) лучше преобразовывать их в хешируемые типы (кортежи).  
- Не подходит для функций с побочными эффектами или динамически меняющимися данными.  

Для распределённого кэширования используют Redis или Memcached.

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы