Курс 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. Список переменных с %who
  3. Библиотека sh: удобные команды терминала
  4. Метод enumerate() в Python
  5. Использование *args
  6. Карта бомбоубежищ в Москве и Питере
  7. Конвертация коллекций в Python
  8. Howdoi — получение ответов из терминала
  9. Ошибка NotImplemented в Python
  10. JMESPath в Python
  11. Измерение времени выполнения кода с помощью time
  12. Проверка памяти объекта
  13. Работа с NumPy массивами
  14. Перегрузка операторов в Python
  15. Отправка поздравлений по дню рождения
  16. Получение атрибутов и методов класса
  17. ChainMap избыточные ключи
  18. Удаление ключа из словаря в Python
  19. Упрощение работы с JSON-данными в Python
  20. Работа с deque из collections
  21. Хранение переменных в словаре.
  22. Создание словарей с defaultdict
  23. Работа с модулем Calendar
  24. Лямбда-функции в цикле
  25. Преобразование строки в число
  26. Создание и обучение модели с Keras
  27. Многострочные комментарии в Python
  28. Импорт модулей и пакетов в Python
  29. Проверка элементов списка условием
  30. Перемешивание списка с shuffle()
  31. Оптимизация строк в Python
  32. Сортировка в Python
  33. Модуль math: основные функции
  34. Тернарный оператор в Python
  35. Работа с часовыми поясами в Python.
  36. Форматирование строк с помощью f-строк
  37. Работа с zip-архивами в Python
  38. Асинхронное программирование с asyncio
  39. Управление виртуальными средами в Python
  40. Имена объектов в Python
  41. Открытие и запись файлов
  42. JMESPath в Python
  43. Поиск наиболее частого элемента
  44. Оператор is в Python
  45. Логирование с Loguru
  46. Работа с deque из collections
  47. Проверка кортежей.

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