Курс 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
  3. Поиск самого частого элемента
  4. Операции с комплексными числами
  5. Объединение списков в Python
  6. Запуск внешних программ с subprocess
  7. Метод __ilshift__ для битового сдвига влево
  8. Установка и использование Python-dateutil
  9. Python: Фильтрация списков с помощью filter()
  10. Функция divmod() в Python
  11. Метод join для наборов
  12. Комментарии в Python.
  13. Конвертация коллекций в Python.
  14. Ускорение обработки данных с %autoawait
  15. Получение размера объекта с sys.getsizeof()
  16. Оптимизация интернирования строк
  17. Поиск наиболее частого элемента списке
  18. Замена элементов в списке с помощью генераторов списков
  19. Конкатенация строк в Python
  20. Управление контекстом с помощью декоратора contextmanager
  21. Модуль antigravity: генерация координат
  22. Получение ID процесса
  23. Профилирование с cProfile
  24. Работа с модулем Calendar
  25. Переопределение метода len
  26. Операция += для списков
  27. Шаблоны и наследование в Flask
  28. Работа с итераторами в Python
  29. Работа с defaultdictами в Python
  30. Управление виртуальными окружениями в Python
  31. Руководство по использованию Colorama
  32. Модуль pprint
  33. Оператор «is not» в Python
  34. Операции с датами в Python
  35. Печать комбинаций в Python с Itertools
  36. Взаимодействие с sys
  37. Хранение данных с помощью dataclasses
  38. Обучение модели с указанием эпох
  39. Лямбда-функции в Python
  40. Циклы for в Python
  41. Конвертация текстовых чисел с помощью Numerizer
  42. Сортировка и обратный порядок
  43. Структуры данных в Python
  44. Настройка Cron
  45. Дизассемблирование Python кода
  46. Python Calendar Usage
  47. Подсчет элементов с помощью Counter из collections

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