Курс 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. Использование модуля math
  2. Конвертация коллекций в Python
  3. Создание новых функций с помощью functools.partial
  4. Обработка исключений с блоком else
  5. Переменные в Python: сокращение гласных
  6. Инициализация объекта
  7. Метод count() для списка
  8. Работа с комплексными числами в Python
  9. Обновление ключей в Python
  10. Подчеркивание в REPL
  11. Ускорение обработки данных с %autoawait
  12. Измерение времени выполнения с помощью time
  13. Применение функции к элементам списка
  14. Подписка на Kaspersky Team
  15. Добавление кнопки в tkinter
  16. Работа с многоуровневыми словарями в Python
  17. Оператор zip в Python
  18. Распаковка элементов последовательности
  19. Создание коллекций из генератора
  20. Создание итератора
  21. Именование столбцов в Python с pandas
  22. Работа с zip-архивами в Python
  23. Обработка исключений
  24. Операции с комплексными числами
  25. Библиотека sh: использование команд bash в Python
  26. Проверка ввода с помощью isdigit
  27. Отправка POST запроса на сервер.
  28. Работа с f-строками 2.0
  29. Преобразование данных в Python
  30. Codecademy в Telegram
  31. Функции в одну строку
  32. Объединение списков в Python
  33. Оптимизация гиперпараметров в Python
  34. Бесконечная проверка в Python
  35. Разрешение имен в Python
  36. Метод hash в Python
  37. Проверка условий в Python
  38. Получение текущей даты в Python
  39. Удаление специальных символов с помощью re.sub
  40. Пустой оператор pass в Python
  41. Методы classmethod и staticmethod
  42. Замена текста с re.sub()
  43. Распаковка аргументов в Python
  44. Использование функции enumerate()
  45. Работа с модулем random
  46. Использование *args
  47. Преобразование списков в словарь
  48. Метод Event.wait() в Python

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