Курс 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. Подсчет элементов в Python
  3. Обработка аргументов Python
  4. История Python
  5. Атрибуты объекта в Python
  6. Переопределение метода __floordiv__
  7. Работа со словарями Python
  8. Порядок и длина множеств в Python
  9. Профилирование данных с Pandas
  10. Генераторы в Python
  11. Работа с кортежами в Python
  12. Оптимизация методов в Python 3.7
  13. Добавление элементов в список: append() vs extend()
  14. Форматирование заголовков в Python
  15. Оптимизация памяти с slots
  16. Бесконечная проверка в Python
  17. Нахождение отличий в списках
  18. Функция count() в Python
  19. Функция findall() для поиска вхождений строки
  20. Резервирование символов в Python
  21. Поиск индексов подстроки
  22. Генераторы в Python
  23. Создание namedtuple списком полей
  24. Работа с географическими данными.
  25. Перехват исключений в Python
  26. Преобразование текста в речь с Python
  27. Переворот строки
  28. Добавление Progressbar в Python
  29. Функция с **kwargs в Python
  30. Регистрация на курсы SF Education
  31. Progress с библиотекой tqdm
  32. PrettyTable: создание таблицы
  33. Использование функции product
  34. Генерация тестовых данных с factory_boy
  35. Приоритет операций в Python
  36. Гибкие функции Python
  37. Синхронизация потоков с time.sleep()
  38. Python: изменяемые и неизменяемые коллекции
  39. Работа с датой и временем в Python
  40. Метод pos в Python
  41. Вычисление логарифмов в Python
  42. Удаление ключа из словаря в Python
  43. Проверка существования переменной с оператором :=
  44. Атрибуты массивов в Numpy

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