Курс 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. Поиск всех индексов подстроки
  3. Подсказки типов в Python
  4. Создание коллекций из генератора
  5. Генерация фальшивых данных с Faker
  6. Цикл for в Python
  7. Работа с JSON в Python
  8. Модуль math: основные функции
  9. F-строки в Python
  10. Множества и frozenset
  11. Конвертация изображений в PDF
  12. Отступы в Python
  13. Копирование объектов в Python
  14. Копирование списков в Python
  15. Функции map() и reduce() в Python
  16. Функция enumerate() в Python
  17. Работа с изменяемыми коллекциями
  18. Создание новых списков
  19. Бинарный поиск
  20. Подсчет элементов в Python
  21. Строки в Python: апострофы и кавычки
  22. Преобразование PowerPoint в PDF.
  23. Проверка условий: all и any
  24. Обработка исключений в Python
  25. Работа с часовыми поясами в Python
  26. Декораторы в Python
  27. Python reversed() vs срез[::-1]
  28. Наследование в программировании
  29. Python groupby() из itertools: работа с повторяющимися элементами
  30. Получение текущей даты в Python
  31. Работа со словарями
  32. Colorama: окрашивание текста в Python
  33. Разработка игры Pong с turtle
  34. Настройка вывода в Numpy
  35. Хэш-функции и метод цепочек
  36. Описание скриптов в README
  37. Списки: объединение, изменение
  38. Установка Python3.7 и PIP
  39. Структуры данных в Python
  40. Изменение объектов в Python
  41. Отображение HTML кода в Python
  42. Измерение времени выполнения с помощью time
  43. Поиск элементов BeautifulSoup

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