Курс Python → lru_cache оптимизация функций
Модуль functools в Python предоставляет декоратор @lru_cache(), который позволяет кэшировать результаты вызовов функции. Это означает, что при повторном вызове функции с теми же аргументами, результат будет возвращен из кэша, а не пересчитываться заново. Такой механизм может значительно ускорить выполнение программы и сэкономить ресурсы.
Пример использования декоратора @lru_cache() может выглядеть следующим образом:
from functools import lru_cache
@lru_cache()
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)
result = fibonacci(10)
print(result)
В этом примере функция fibonacci() вычисляет значение числа Фибоначчи для заданного номера n. Благодаря декоратору @lru_cache(), результаты для различных значений n будут кэшироваться, что позволит избежать повторных вычислений и ускорит выполнение программы.
Важно помнить, что использование декоратора @lru_cache() имеет смысл только для функций с детерминированным поведением, то есть функций, которые всегда возвращают одинаковый результат для одинаковых входных данных. Для функций с побочными эффектами или изменяемым состоянием кэширование может привести к нежелательным результатам.
Таким образом, декоратор @lru_cache() из модуля functools предоставляет удобный способ оптимизации выполнения функций с повторяющимися вызовами. Правильное использование кэширования может значительно улучшить производительность программы, особенно при работе с дорогостоящими вычислениями или операциями ввода/вывода.
Другие уроки курса "Python"
- Декораторы с @wraps
- Установка и использование модуля Wikipedia
- Сравнение строк в Python
- Подсчет элементов в Python
- Метод rsub для пользовательских чисел
- Использование defaultdict в Python
- Циклы for в Python
- Основы Python
- UserString в Python
- Функция enumerate в Python
- Настройка нарезки списков
- Поиск частого элемента
- Проверка однородности элементов списка
- Преобразование range в итератор
- Метод join() для объединения строк
- Оператор умножения для вектора
- Установка и использование библиотеки google
- Сортировка списка по индексам
- Генераторы списков в Python
- Библиотека schedule: планировщик задач
- Преобразование Excel в PDF с Spire.XLS
- Работа с срезами в Numpy
- Декораторы в Python
- Создание класса в Python
- Отладка регулярных выражений в Python
- Работа с IP-адресами в Python
- Проблемы с именами переменных
- Метод get для словаря
- Модуль itertools: комбинации и перестановки
- Выражения-генераторы в Python
- Запуск внешнего кода в Jupyter
- Метод __iand__ для пользовательских классов
- Docstring в Python
- Функции map() и reduce() в Python
- Работа с очередями в Python
- Оптимизация гиперпараметров в Python
- Функции в Python
- Переопределение метода delitem в Python
- Логирование в Python
- Удаление дубликатов из списка
- Ввод нескольких значений
- Оператор объединения словарей
- Библиотека sh: удобные команды терминала
- Модуль Operator в Python
- Анонимные функции Lambda
- Модуль future Python
- Разделение строки в Python















