Курс 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. Измерение времени выполнения кода
  2. Имена объектов в Python
  3. Ключевое слово global в Python
  4. Форматирование данных с помощью pprint
  5. Переопределение метода __eq__
  6. Переименование файлов в Python
  7. Подробная информация о %pinfo
  8. Метод split() для разделения строк
  9. Лямбда-функции в Python
  10. Обезопасьте ввод данных
  11. Списки в Python: основы
  12. Область видимости переменных в Python
  13. PEP-401: оператор
  14. Утечки переменных цикла в Python 3.x
  15. Различия символов в Python
  16. Функция zip() в Python
  17. Документация функции help() в Python
  18. Построение графиков в Matplotlib
  19. Python Менеджер контекста
  20. Основные функции и модули Python
  21. Хранение переменных в словаре.
  22. Метод pop() списка
  23. Динамические маршруты во Flask
  24. Статическая типизация в Python
  25. Обход элементов в Python
  26. Python: изменяемые и неизменяемые коллекции
  27. Получение атрибутов и методов класса
  28. Значения по умолчанию в Python
  29. Преобразование range в итератор
  30. Сравнение объектов в Python
  31. Структуры данных в Python
  32. Работа с модулем Calendar
  33. Перевод эмодзи и эмотиконов.
  34. Метод splitlines() для разделения строк
  35. Структуры данных в Python
  36. Метод rxor для операции побитового исключающего «или»
  37. Модуль antigravity: генерация координат
  38. Создание namedtuple списком полей
  39. Вычисление логарифмов в Python
  40. Поиск индекса элемента в списке
  41. Возврат нескольких значений
  42. Обработка ошибок ввода данных
  43. Обработка исключения UnboundLocalError
  44. Сортировка и обратный порядок

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