Курс 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
- Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
- Метод __ilshift__ для битового сдвига влево
- Измерение времени выполнения кода
- Расширение операции побитового «и» в Python
- Отправка HTTP-запросов в Python
- Функция zip() для объединения списков
- Оформление кода по PEP 8
- Настройка Cron
- Запрос DELETE с библиотекой requests
- Метод setitem в Python
- Установка и использование Logzero
- Отладка регулярных выражений в Python
- Оптимизация интернирования строк
- Метод join() для объединения элементов
- Создание множества в Python
- Преобразование документов в PDF с помощью Spire.Office
- Создание циклической ссылки
- Работа с Path в Python
- Порядок и длина множеств в Python
- Нарезка списков в Python
- Переименование файлов в Python
- Проверка типа объекта в Python
- Функция reduce() из модуля functools
- Numpy: использование Ellipsis
- Распаковка аргументов в Python
- Создание коллекций из выражения-генератора
- Подсказки типов в Python
- Библиотека Emoji: использование смайлов в Python
- Вызов функций по строке в Python.
- Генерация чисел с range()
- Повторение элементов в Python
- Инициализация переменных
- Декоратор @override
- Метод __complex__ в Python
- Работа с буфером обмена на Python
- Antigravity модуль
- Преобразование в float
- Изучение объектов с помощью dir()
- Список переменных в Python
- Настройка логгера Logzero
- Метод join() для объединения элементов строки
- Просмотр внешнего файла в Python















