Курс Python → Модуль functools в Python

Модуль functools в Python предоставляет различные функции для функционального программирования, что позволяет писать более компактный и выразительный код. Одной из наиболее часто используемых функций из этого модуля является reduce. Эта функция применяет указанную функцию к элементам последовательности, последовательно уменьшая ее до одного значения. Например, можно использовать reduce для вычисления суммы всех элементов в списке:

from functools import reduce

numbers = [1, 2, 3, 4, 5]
sum = reduce(lambda x, y: x + y, numbers)
print(sum)  # Выведет 15

Еще одной полезной функцией из модуля functools является partial. Она позволяет частично применить аргументы к функции, возвращая новую функцию, которая ожидает только оставшиеся аргументы. Это удобно, когда необходимо создать функцию с некоторыми предустановленными значениями:

from functools import partial

def power(base, exponent):
    return base ** exponent

square = partial(power, exponent=2)
print(square(5))  # Выведет 25

Кроме того, модуль functools содержит и другие полезные функции, такие как cached_property, которая кэширует результат выполнения функции для повышения производительности, особенно при многократном обращении к ней. Это может быть полезно, например, при работе с дорогостоящими вычислениями:

from functools import cached_property

class Circle:
    def __init__(self, radius):
        self.radius = radius

    @cached_property
    def area(self):
        print('Calculating area...')
        return 3.14159 * self.radius ** 2

c = Circle(5)
print(c.area)  # Вызовет расчет площади
print(c.area)  # Выведет ранее вычисленное значение

Таким образом, использование модуля functools в Python позволяет улучшить структуру кода, делая его более читаемым и эффективным. Эти функции отлично подходят для реализации функционального программирования и упрощения повседневных задач.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Нан-рефлексивность в Python
  2. Перемещение и удаление файлов в Python
  3. Удаление элементов из списка в Python
  4. Бесконечные списки в Python
  5. Python enumerate() для работы с индексами
  6. Solidity для DeFi Ethereum
  7. Управление ресурсами в Python
  8. Парсинг статей с Newspaper3k
  9. Python 3.12: Псевдонимы типов
  10. Работа с изменяемыми коллекциями
  11. Именование переменных в Python
  12. Класс UserDict: дополнительная функциональность
  13. Flask — веб-фреймворк Python
  14. Оператор * в Python
  15. Логирование с Loguru
  16. Список переменных в Python
  17. Получение идентификатора объекта в памяти
  18. Удаление элементов из списка в Python.
  19. Метод сравнения объектов в Python
  20. Получение локальных переменных в Python
  21. Инициализация структур данных
  22. Список переменных с %who
  23. Модуль os в Python: работа с файлами
  24. Методы shutil для работы с файлами
  25. Функция format() в Python
  26. Область видимости переменных
  27. Переопределение метода __lshift__
  28. Метод rsub в Python: расширение функциональности вычитания
  29. Работа с контекстным менеджером Pool
  30. Типы возвращаемых значений в Python
  31. Получение текущего времени в Python
  32. Гибкие функции Python
  33. Работа со строками в Python
  34. Поиск индекса элемента в списке
  35. Удаление дубликатов с помощью множеств
  36. Карта бомбоубежищ в Москве и Питере
  37. Автоматизация с Python
  38. Разделение функций на этапы
  39. Метод setdefault() в Python
  40. Создание задания в Cron
  41. Работа с Requests для HTTP-запросов

Marketello читают маркетологи из крутых компаний