Курс 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"
- Делегирование в Python
- Перегрузка операторов в Python
- Работа с множествами в Python
- Обработка исключений в Python 3
- capitalize() — изменение регистра первого символа строки
- Оператор Walrus в Python 3.8
- Создание и использование ChainMap
- Перемешивание списка с shuffle()
- Динамическая типизация в Python
- Декораторы в Python
- Векторизация в Python с NumPy.
- Основные методы NumPy
- Генераторы в Python
- Преобразование регистра символов
- Создание матрицы в Python
- Объединение списков с помощью zip
- Экранирование символов в Python
- Magic Commands — улучшение работы с Python
- Операторы присваивания в Python
- Отслеживание выполнения программы с библиотекой tqdm
- Область видимости переменных
- Оператор морж в Python 3.8
- Освоение Python
- Преобразование кортежа в словарь.
- Протокол управления контекстом
- Копирование объектов в Python
- Работа с модулем bisect
- Метод split() в Python
- Генераторы списков в Python
- PUT запрос для обновления данных
- Codecademy в Telegram
- Работа с буфером обмена на Python
- Копирование файлов с shutil()
- Оптимизация памяти с __slots__
- Замена символов в строке
- Python enumerate() для работы с индексами
- Управление виртуальными окружениями в Python
- Установка User-Agent в Python
- Numpy: использование Ellipsis
- Управление асинхронными задачами на Python.
- Декодирование строк в Python
- Beautiful Soup — извлечение данных из HTML
- Переопределение метода delitem в Python
- Поиск с помощью регулярных выражений
- Различия символов в Python
- Перехват исключений в Python
- Создание именованных кортежей в Python















