Курс 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. Работа с IP-адресами в Python
  2. Создание таблиц в Python с PrettyTable
  3. Именованные срезы в Python
  4. Расчет времени выполнения кода
  5. Генераторы данных
  6. Обработка ошибок ввода данных
  7. Подсчет часто встречающихся элементов
  8. Список импортированных модулей в Python
  9. Поиск частого элемента
  10. Регулярные выражения в Python
  11. Преобразование текста в речь с Python
  12. Передача словаря через **kwargs
  13. Модуль os в Python: работа с файлами
  14. Удаление знаков препинания в Python
  15. Объединение множеств в Python
  16. Переопределение метода xor в Python
  17. Мощь вложенных функций в Python
  18. Срезы в Numpy
  19. Модуль inspect
  20. Принципы LSP и ISP в Python
  21. Pillow: работа с изображениями
  22. Python UserString — создание подклассов строк
  23. Использование функции enumerate()
  24. Получение текущей даты и времени
  25. Сортировка элементов в Python
  26. Замена символов в Python
  27. Метод __irshift__ для Python
  28. Метод enumerate() в Python
  29. Работа с геоданными с помощью geopy
  30. Исключение NotImplementedError
  31. Установка и использование Virtualenv
  32. Создание виртуальной среды
  33. Методы split() и join() — Python строк.
  34. Профилирование данных с Pandas.
  35. Метод Event.wait() в Python
  36. Значения по умолчанию в Python
  37. Проверка строки на палиндром
  38. Форматирование чисел в Python
  39. Экспорт данных с помощью writefile
  40. Взаимодействие с sys
  41. Распаковка с оператором *
  42. Измерение времени выполнения кода
  43. Оператор «моржа» (Walrus Operator)
  44. Разработка Telegram-ботов
  45. Комплексные числа в Python
  46. Сортировка в Python
  47. Роль ключевого слова self

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