Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: cache, optimization

Что такое lru_cache?

Этот вопрос проверяет понимание работы механизма кэширования с помощью functools.lru_cache.

Короткий ответ

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

Длинный ответ

lru_cache (Least Recently Used cache) сохраняет ограниченное число результатов вызовов функции в памяти. Если кэш заполнен, самые старые записи удаляются.

Пример использования:

from functools import lru_cache

@lru_cache(maxsize=128)
def fibonacci(n):
    if n < 2:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

print(fibonacci(10))  # Значение вычисляется и сохраняется в кэше
print(fibonacci.cache_info())  # Показывает статистику кэша

Особенности:

  • Аргументы функции должны быть неизменяемыми, так как они используются для идентификации кэшируемого результата.

  • Параметр maxsize задаёт максимальное количество записей в кэше.

Когда использовать:

  • Для оптимизации медленных или вычислительно затратных функций.

  • Для уменьшения количества повторных вычислений.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • Python

    Python

Ключевые слова

#cache

#optimization

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.