Курс 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"
- Оптимизация гиперпараметров в Python
- Сравнение строк в Python
- Поиск с помощью регулярных выражений
- Преобразование символов в нижний регистр
- Блок else в Python
- Отправка HTTP-запросов в Python
- Метод clear для коллекций
- Работа со словарями в Python
- Перевод двоичного кода в целое число
- Итерации в Python
- Обработка StopIteration в Python
- Python OrderedDict и fromkeys() — работа с словарями
- 9 уловок для чистого кода
- Оператор match в Python
- Использование функции product
- Руководство по использованию Colorama
- Оператор обр. импликации
- Добавление вложенных списков
- Принципы программирования
- Numpy: объединение массивов
- Именование столбцов в Python с pandas
- Протокол управления контекстом
- Удаление URL-адресов в Python
- Генерация резюме в Gensim
- Конструктор в Python
- Особенности множеств в Python
- Инверсия списка и строки
- Просмотр атрибутов и методов класса
- Проверка наличия элемента в списке
- Работа с enumerate()
- Работа с файлами в Python
- Преобразование данных в Python
- Объединение словарей в Python
- Поиск самого частого элемента
- Декораторы для регистрации функций
- Работа с итераторами в Python
- Функциональное программирование.
- Создание списка через итерацию
- Оператор continue в Python
- Инициализация переменных
- Метод __ixor__ для побитового исключающего ИЛИ
- Объединение коллекций в Python
- Python Метод Union Множеств
- Замыкания в Python
- Удаление специальных символов
- Именованные срезы в Python
- Работа с контекстным менеджером Pool















