Курс 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. Метод bool() в Python
  5. Поиск повторов в списке
  6. Дефолтные параметры в Python
  7. Работа с argparse
  8. Проверка кортежей.
  9. Работа с файлами в Python
  10. Поиск анаграмм с Counter
  11. Использование функции enumerate()
  12. Разделение функций на этапы
  13. Установка и использование библиотеки google
  14. Управление контекстом выполнения
  15. Defaultdict в Python
  16. Цикл for с enumerate() в Python
  17. Базовые объекты Python
  18. Howdoi — получение ответов из терминала
  19. Идентификатор объекта в Python
  20. Обработка элементов в Python
  21. Итераторы в Python
  22. Удаление URL-адресов в Python
  23. Группы исключений в Python
  24. Работа с библиотекой requests
  25. Списки в Python: синтаксис представления
  26. Объединение словарей в Python
  27. Объединение словарей в Python
  28. Объединение строк с помощью метода join
  29. Работа с пользовательским вводом
  30. Импортирование в Python
  31. Monkey Patching в Python
  32. Поиск с помощью регулярных выражений
  33. Нахождение хеша для бесконечности и NaN в Python
  34. Удаление ключа из словаря в Python
  35. JMESPath в Python
  36. Python Поверхностное Копирование
  37. Стать Python-разработчиком
  38. Итерация по итерируемым объектам
  39. Создание списка через цикл
  40. Преобразование PowerPoint в PDF.
  41. Создание GUI на Tkinter
  42. Проблема сравнения словарей
  43. Объединение словарей в Python
  44. Улучшение читаемости кода в Python
  45. Обработка исключений в Python
  46. Очистка строки в Python
  47. Создание функций высшего порядка
  48. Исключение NotImplementedError

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