Курс 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. Dict Comprehension в Python
  3. Работа с collections.Counter
  4. Преобразование в float
  5. Работа с итераторами через срезы
  6. Контроль точности вывода чисел
  7. Создание циклической ссылки
  8. Сравнение строк в Python
  9. Добавление элемента в список.
  10. Рациональные числа в Python
  11. Решение переменной Шредингера
  12. Извлечение чисел из текста
  13. Работа с Colorama
  14. Именованные срезы в Python
  15. Преобразование букв в нижний регистр
  16. Однострочники Python
  17. Работа с массивами в Python
  18. Поиск уникальных и повторяющихся элементов
  19. Навыки Python: строки, типы данных
  20. Возврат нескольких значений из функции
  21. Создание namedtuple из словаря
  22. Замена атрибута в именованном кортеже
  23. Codecademy в Telegram
  24. Удаление символов новой строки в Python.
  25. Поиск с помощью регулярных выражений
  26. Многоточие в Python
  27. Блок try…finally в Python
  28. Управление импортом в Python
  29. Изменение IP-адреса в Python
  30. Структура строк в Python
  31. Вычисление натурального логарифма в NumPy
  32. Обход словаря в Python
  33. Работа с изменяемыми списками
  34. Работа с CSV файлами в Python
  35. Retrying в Python: повторные вызовы
  36. Объединение словарей в Python
  37. Оператор zip в Python
  38. Определение основы слова с showballstemmer
  39. Установка и использование модуля «howdoi»
  40. Метод __ilshift__ для битового сдвига влево
  41. Создание вложенных циклов for
  42. Работа со стеком в Python
  43. Каналы Senior: Python, Java, Frontend, SQL, C++

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