Курс 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. Разделение строки на пары ключ-значение.
  3. Объединение списков в Python
  4. Генерация случайных чисел Python
  5. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  6. Метод __ilshift__ для битового сдвига влево
  7. Измерение времени выполнения кода
  8. Расширение операции побитового «и» в Python
  9. Отправка HTTP-запросов в Python
  10. Функция zip() для объединения списков
  11. Оформление кода по PEP 8
  12. Настройка Cron
  13. Запрос DELETE с библиотекой requests
  14. Метод setitem в Python
  15. Установка и использование Logzero
  16. Отладка регулярных выражений в Python
  17. Оптимизация интернирования строк
  18. Метод join() для объединения элементов
  19. Создание множества в Python
  20. Преобразование документов в PDF с помощью Spire.Office
  21. Создание циклической ссылки
  22. Работа с Path в Python
  23. Порядок и длина множеств в Python
  24. Нарезка списков в Python
  25. Переименование файлов в Python
  26. Проверка типа объекта в Python
  27. Функция reduce() из модуля functools
  28. Numpy: использование Ellipsis
  29. Распаковка аргументов в Python
  30. Создание коллекций из выражения-генератора
  31. Подсказки типов в Python
  32. Библиотека Emoji: использование смайлов в Python
  33. Вызов функций по строке в Python.
  34. Генерация чисел с range()
  35. Повторение элементов в Python
  36. Инициализация переменных
  37. Декоратор @override
  38. Метод __complex__ в Python
  39. Работа с буфером обмена на Python
  40. Antigravity модуль
  41. Преобразование в float
  42. Изучение объектов с помощью dir()
  43. Список переменных в Python
  44. Настройка логгера Logzero
  45. Метод join() для объединения элементов строки
  46. Просмотр внешнего файла в Python

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