Курс 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. Настройка вывода в Numpy
  2. Установка и использование emoji
  3. Python и Юникод: работа с цифрами
  4. Генерация резюме в Gensim
  5. Итерация по копии коллекции
  6. Переменные в Python
  7. Синхронизация доступа к ресурсам
  8. Проблемы с dict в Python
  9. Измерение времени выполнения кода
  10. Изменение списка срезом
  11. Сортировка в Python
  12. Удаление символа из строки
  13. Обновление данных через PUT запрос
  14. Функции с дополнением
  15. Непрерывная проверка в Python
  16. Обработка ошибок в Python
  17. Заказ карты Тинькофф Black
  18. Конвертация изображений в PDF
  19. Поиск подстроки в строке
  20. Блок else в циклах.
  21. Оптимизация параметров в Python
  22. Форматирование строк в Python
  23. Расчет времени выполнения программы
  24. Автоматизация действий с Pyautogui
  25. Оценка выражений генератора в Python
  26. discard() — удаление элемента из множества
  27. Работа с массивами в Numpy
  28. Реверс строки в Python
  29. Ограничение ресурсов в Python
  30. Оператор умножения для вектора
  31. Удаление falsy-значений из списка с помощью filter
  32. Метод Enumerate() для списков
  33. Оператор in для проверки наличия элемента
  34. Получение срезов итераторов
  35. Добавление вложенных списков
  36. Метод matmul для умножения матриц
  37. Очистка данных в Python
  38. Оптимизация памяти с __slots__
  39. Навыки Python: строки, типы данных
  40. Работа с комплексными числами
  41. Преобразование объекта в строку
  42. Обработка исключений в Python
  43. Переопределение метода sub
  44. Создание директории в Python
  45. Списковое включение в Python

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