Курс 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. Разработка Telegram-ботов
  3. Библиотека wikipedia для Python
  4. Объединение списков в строку
  5. Декораторы в Python
  6. Генераторы в Python
  7. Порядок и длина множеств в Python
  8. Поиск простых чисел
  9. Обработка ошибки IndexError
  10. Особенности ключей словаря в Python
  11. Метод pop() списка
  12. Конструктор в Python
  13. Установка и использование модуля Wikipedia
  14. Замыкания в Python
  15. Копирование объектов в Python
  16. Сокращение ссылок с pyshorteners
  17. Numpy: использование Ellipsis
  18. Переворот строки с помощью срезов
  19. Модуль math: основные функции
  20. Логирование с Logzero
  21. Протокол управления контекстом
  22. Лямбда-функции для min/max
  23. Перебор элементов списка в Python
  24. Профилирование данных с Pandas.
  25. Создание и инициализация объектов
  26. Декораторы в Python
  27. Итерация по копии коллекции
  28. Генерация UUID в Python
  29. Защита данных в Python
  30. Создание файла с проверкой ошибки
  31. Создание уникального множества
  32. Работа со словарями с defaultdict из collections
  33. Профилирование с Pandas
  34. Основы работы с базами данных в Python
  35. Измерение времени выполнения кода в Python
  36. Декораторы в Python
  37. Декоратор total_ordering для сравнения объектов
  38. Комментарии в Python
  39. Переопределение оператора % для объектов
  40. Добавление Progressbar в Python
  41. Удаление элемента по индексу
  42. Управление виртуальными окружениями в Python
  43. Поиск индексов в списке
  44. Подписка на Kaspersky Team
  45. Concrete Paths в Python

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