Курс 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. Возврат нескольких значений из функции
  2. Создание новой даты в Python
  3. Преобразование данных в Python
  4. Многопоточность и асинхронное программирование в Python
  5. Аргумент по умолчанию
  6. Атрибуты массивов в Numpy
  7. Библиотека Emoji: использование смайлов в Python
  8. Настройка нарезки списков
  9. Подсказки типов в Python
  10. Создание директории в Python
  11. Абстракции словарей и множеств в Python
  12. Разделение строки на пары ключ-значение.
  13. Управление ресурсами с контекстными менеджерами
  14. Модуль inspect: получение информации о объектах
  15. Запрос DELETE с библиотекой requests
  16. Распаковка элементов массива
  17. Оператор распаковки в Python
  18. Сериализация данных в JSON с помощью json.dumps
  19. Сумма элементов списка
  20. Работа с базами данных SQLite
  21. Методы сравнения множеств
  22. Поиск наиболее частого элемента
  23. Сортировка HTML-элементов
  24. Генераторы в Python
  25. Создание панели меню Tkinter
  26. Работа с f-строками 2.0
  27. Метод rmatmul для пользовательских матриц
  28. Дизассемблирование Python кода
  29. Асинхронное выполнение задач в процессах
  30. Многоточие в Python
  31. Замыкания в Python
  32. Конкатенация строковых литералов
  33. Установка библиотек в Python
  34. Метод radd для пользовательских чисел
  35. Логирование с Logzero
  36. Проверка дубликатов в Python
  37. Введение в PyTorch
  38. UserString в Python
  39. Назначение максимального и минимального значения переменной в Python.
  40. Работа с эмодзи в Python
  41. Форматирование строк с % в Python
  42. Настройка логгера Logzero
  43. Обработка исключений в Python
  44. Установка и использование emoji
  45. Решатель судоку на Python с pygame
  46. Запуск асинхронной корутины
  47. Оператор in и not in в Python
  48. Измерение времени выполнения кода

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