Курс 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. split() — разделение строки
  2. Необязательные аргументы в Python
  3. Работа со строками в Python.
  4. Импорт модулей в Python 3.12
  5. Подсчет количества элементов в списке
  6. Метод lt для сортировки объектов
  7. Работа с collections в Python
  8. Создание веб-приложения с Flask
  9. discard() — удаление элемента из множества
  10. Нахождение пересечения множеств
  11. Работа с модулем cmath
  12. Профилирование данных с Pandas
  13. Форматирование строк с f-строками
  14. Передача словаря через **kwargs
  15. Обработка ошибок в Python
  16. Принципы LSP и ISP в Python
  17. Проверка однородности элементов списка
  18. Многострочные комментарии в Python
  19. Установка виртуального окружения Python
  20. Генерация резюме в Gensim
  21. Проверка кортежей.
  22. Работа с CSV в Python
  23. Переворот последовательности
  24. Списковый компрехеншен.
  25. Работа с IP-адресами в Python
  26. Генераторы в Python
  27. Создание лямбда-функций
  28. Генерация тестовых данных с factory_boy
  29. Оболочка Python
  30. Работа с argparse
  31. Python: отсутствие точек с запятыми
  32. Метод init в Python
  33. Обход словаря в Python
  34. Измерение времени выполнения кода
  35. Искажение имен в Python
  36. Управление контекстом выполнения
  37. Тестирование времени с Freezegun
  38. TypedDict для kwargs в Python 3.12
  39. Python UserString — создание подклассов строк
  40. Структура данных словарь в Python
  41. Создание таблиц в терминале с PrettyTable
  42. JMESPath в Python
  43. Просмотр внешних файлов в %pycat
  44. Регистрация на хакатоне
  45. Работа с аргументами командной строки
  46. Создание коллекций из выражения-генератора

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