Курс 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 Calendar Usage
  3. Разделение строки с помощью re.split()
  4. Скрытие вывода данных
  5. Установка и использование howdoi
  6. Встроенные функции Python
  7. Проектирование Singleton с метаклассом
  8. Функция с *args.
  9. Метод enumerate() в Python
  10. Проверка элемента в множестве.
  11. Python Поверхностное Копирование
  12. Область видимости переменных
  13. Проверка запуска скрипта или импорта модуля
  14. Создание новой даты в Python
  15. Инверсия списка и строки в Python
  16. Создание функций высшего порядка
  17. Установка пакета в Python
  18. Распаковка элементов массива
  19. Работа с байтовыми строками в Python
  20. Python: Splat-оператор и splatty-splat
  21. Использование *args
  22. Анализ кода — Python
  23. Отрицательные индексы списков
  24. Лямбда-функции в Python
  25. Обработка элементов в Python
  26. Функция zip() в Python
  27. Игра «Камень, ножницы, бумага» — Python
  28. Преобразование числа в восьмеричную строку
  29. Реверс строки в Python
  30. Retrying в Python: повторные вызовы
  31. Метод __ixor__ для побитового исключающего ИЛИ
  32. Перевернуть список в Python
  33. Оператор «or» в Python
  34. Генераторы в Python
  35. Переворот списка в Python
  36. Генераторы списков
  37. Отправка HTTP-запросов в Python
  38. Повторение элементов списков
  39. F-строки в Python 3.8
  40. Установка и использование pyshorteners
  41. Python 3.12: переиспользование кавычек
  42. Многопоточность в Python

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