Курс 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. Работа с множествами в Python
  4. Обработка исключений в Python 3
  5. capitalize() — изменение регистра первого символа строки
  6. Оператор Walrus в Python 3.8
  7. Создание и использование ChainMap
  8. Перемешивание списка с shuffle()
  9. Динамическая типизация в Python
  10. Декораторы в Python
  11. Векторизация в Python с NumPy.
  12. Основные методы NumPy
  13. Генераторы в Python
  14. Преобразование регистра символов
  15. Создание матрицы в Python
  16. Объединение списков с помощью zip
  17. Экранирование символов в Python
  18. Magic Commands — улучшение работы с Python
  19. Операторы присваивания в Python
  20. Отслеживание выполнения программы с библиотекой tqdm
  21. Область видимости переменных
  22. Оператор морж в Python 3.8
  23. Освоение Python
  24. Преобразование кортежа в словарь.
  25. Протокол управления контекстом
  26. Копирование объектов в Python
  27. Работа с модулем bisect
  28. Метод split() в Python
  29. Генераторы списков в Python
  30. PUT запрос для обновления данных
  31. Codecademy в Telegram
  32. Работа с буфером обмена на Python
  33. Копирование файлов с shutil()
  34. Оптимизация памяти с __slots__
  35. Замена символов в строке
  36. Python enumerate() для работы с индексами
  37. Управление виртуальными окружениями в Python
  38. Установка User-Agent в Python
  39. Numpy: использование Ellipsis
  40. Управление асинхронными задачами на Python.
  41. Декодирование строк в Python
  42. Beautiful Soup — извлечение данных из HTML
  43. Переопределение метода delitem в Python
  44. Поиск с помощью регулярных выражений
  45. Различия символов в Python
  46. Перехват исключений в Python
  47. Создание именованных кортежей в Python

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