Курс 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"
- Добавление элемента в список.
- Сравнение def и lambda функций в Python
- Работа с itertools
- Изменение элемента списка
- Python Метод del.
- Удаление элементов по срезу
- Методы обработки строк в Python
- Форматирование строк в Python
- Поиск подстроки в строке
- Обработка исключений в Python
- Абстракции словарей и множеств в Python
- Оптимизация поиска в словарях
- Новшества Flask 2.0
- Работа с модулем os в Python
- Стать Python-разработчиком
- Использование defaultdict в Python
- Работа с массивами в Python
- Метод gt в Python
- split() — разделение строки
- Подсчет элементов в списке с Counter
- Операторы увеличения и уменьшения в Python
- Поиск с библиотекой Google
- Работа с типами данных в Python с помощью pydantic.
- Операции с числами в Python
- Освоение Python
- Работа со строками
- Структура данных словарь в Python
- GitHub в Telegram: подписка на уведомления
- Принципы Zen Python
- Оптимизация строк в Python
- Метод join() для объединения строк
- Логические операторы в Python
- Модуль array: создание и использование массивов
- Обработка исключений с блоком else
- Использование подчеркивания в REPL
- Работа со строками в Python
- Декораторы в Python
- Оператор del в Python
- Обработка аргументов Python
- Создание Radio кнопок в tkinter
- Форматирование данных с помощью pprint
- Навыки Python: строки, типы данных
- Многострочные комментарии в Python
- Строковое представление объектов
- Определение объема памяти объекта
- Отступы в Python















