2.8Kпросмотров
30.6%от подписчиков
21 февраля 2026 г.
Score: 3.1K
❓ Вопрос с собеса Что делает functools.lru_cache в Python и когда его использовать? Пример🔽
`python
# Без lru_cache (наивная рекурсия)
def fibonacci(n): if n <= 1: return n return fibonacci(n-1) + fibonacci(n-2) # Вычисление 35-го числа займет несколько секунд
# print(fibonacci(35)) # С lru_cache (кэширование результатов)
from functools import lru_cache @lru_cache(maxsize=128)
def fibonacci_cached(n): if n <= 1: return n return fibonacci_cached(n-1) + fibonacci_cached(n-2) # Вычисление 100-го числа произойдет мгновенно!
print(fibonacci_cached(100)) Ответ🔽 Декоратор @lru_cache (Least Recently Used cache) автоматически сохраняет результаты вызова функции в кэше. При повторном вызове с теми же аргументами функция не выполняется заново, а возвращает уже готовое значение из памяти. 🐍 Ghostly Python | #собес