Курс 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
- Аргумент по умолчанию
- Атрибуты массивов в Numpy
- Библиотека Emoji: использование смайлов в Python
- Настройка нарезки списков
- Подсказки типов в Python
- Создание директории в Python
- Абстракции словарей и множеств в Python
- Разделение строки на пары ключ-значение.
- Управление ресурсами с контекстными менеджерами
- Модуль inspect: получение информации о объектах
- Запрос DELETE с библиотекой requests
- Распаковка элементов массива
- Оператор распаковки в Python
- Сериализация данных в JSON с помощью json.dumps
- Сумма элементов списка
- Работа с базами данных SQLite
- Методы сравнения множеств
- Поиск наиболее частого элемента
- Сортировка HTML-элементов
- Генераторы в Python
- Создание панели меню Tkinter
- Работа с f-строками 2.0
- Метод rmatmul для пользовательских матриц
- Дизассемблирование Python кода
- Асинхронное выполнение задач в процессах
- Многоточие в Python
- Замыкания в Python
- Конкатенация строковых литералов
- Установка библиотек в Python
- Метод radd для пользовательских чисел
- Логирование с Logzero
- Проверка дубликатов в Python
- Введение в PyTorch
- UserString в Python
- Назначение максимального и минимального значения переменной в Python.
- Работа с эмодзи в Python
- Форматирование строк с % в Python
- Настройка логгера Logzero
- Обработка исключений в Python
- Установка и использование emoji
- Решатель судоку на Python с pygame
- Запуск асинхронной корутины
- Оператор in и not in в Python
- Измерение времени выполнения кода















