Курс 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. Фильтрация элементов с помощью islice
  3. Поиск простых чисел
  4. Правила именования переменных
  5. Проблемы с dict в Python
  6. Создание веб-приложения с Flask
  7. Проверка подстроки в строке с помощью in
  8. Удаление ключей из словаря
  9. Отправка поздравлений по дню рождения
  10. Копирование объектов в Python
  11. Метод get для словарей
  12. Применение функции к списку
  13. Списковые включения в Python
  14. Возвращение нескольких значений
  15. Нарезка списков в Python
  16. inspect в Python: анализ кода
  17. Форматирование кода на Python
  18. Оператор match в Python
  19. Функция all() в Python
  20. Имена объектов в Python
  21. Работа с Enum в Python3.
  22. Удаление файлов с shutil.os.remove()
  23. Векторизация в Python с NumPy.
  24. Работа с timedelta
  25. Преобразование символов с помощью map
  26. Скачать видео с YouTube
  27. Преобразование данных в Python
  28. Метод __float__ в Python
  29. Установка User-Agent в Python
  30. Аннотации типов в Python
  31. Преобразование списков в словарь
  32. Метод get() для словарей
  33. Типы возвращаемых значений в Python
  34. Использование функции enumerate()
  35. Применение функций в Python
  36. Использование модуля __future__
  37. Метод bool() в Python
  38. Обработка ошибок в Python
  39. Измерение времени выполнения в Python
  40. Оператор обр. импликации
  41. Метод get() в Python
  42. Инвертирование словаря
  43. Поиск частого элемента
  44. Форматирование заголовков в Python
  45. Конкатенация строковых литералов

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