Курс 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"
- Удаление символа из строки
- Разработка Telegram-ботов
- Библиотека wikipedia для Python
- Объединение списков в строку
- Декораторы в Python
- Генераторы в Python
- Порядок и длина множеств в Python
- Поиск простых чисел
- Обработка ошибки IndexError
- Особенности ключей словаря в Python
- Метод pop() списка
- Конструктор в Python
- Установка и использование модуля Wikipedia
- Замыкания в Python
- Копирование объектов в Python
- Сокращение ссылок с pyshorteners
- Numpy: использование Ellipsis
- Переворот строки с помощью срезов
- Модуль math: основные функции
- Логирование с Logzero
- Протокол управления контекстом
- Лямбда-функции для min/max
- Перебор элементов списка в Python
- Профилирование данных с Pandas.
- Создание и инициализация объектов
- Декораторы в Python
- Итерация по копии коллекции
- Генерация UUID в Python
- Защита данных в Python
- Создание файла с проверкой ошибки
- Создание уникального множества
- Работа со словарями с defaultdict из collections
- Профилирование с Pandas
- Основы работы с базами данных в Python
- Измерение времени выполнения кода в Python
- Декораторы в Python
- Декоратор total_ordering для сравнения объектов
- Комментарии в Python
- Переопределение оператора % для объектов
- Добавление Progressbar в Python
- Удаление элемента по индексу
- Управление виртуальными окружениями в Python
- Поиск индексов в списке
- Подписка на Kaspersky Team
- Concrete Paths в Python















