Курс 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"
- Использование модуля math
- Конвертация коллекций в Python
- Создание новых функций с помощью functools.partial
- Обработка исключений с блоком else
- Переменные в Python: сокращение гласных
- Инициализация объекта
- Метод count() для списка
- Работа с комплексными числами в Python
- Обновление ключей в Python
- Подчеркивание в REPL
- Ускорение обработки данных с %autoawait
- Измерение времени выполнения с помощью time
- Применение функции к элементам списка
- Подписка на Kaspersky Team
- Добавление кнопки в tkinter
- Работа с многоуровневыми словарями в Python
- Оператор zip в Python
- Распаковка элементов последовательности
- Создание коллекций из генератора
- Создание итератора
- Именование столбцов в Python с pandas
- Работа с zip-архивами в Python
- Обработка исключений
- Операции с комплексными числами
- Библиотека sh: использование команд bash в Python
- Проверка ввода с помощью isdigit
- Отправка POST запроса на сервер.
- Работа с f-строками 2.0
- Преобразование данных в Python
- Codecademy в Telegram
- Функции в одну строку
- Объединение списков в Python
- Оптимизация гиперпараметров в Python
- Бесконечная проверка в Python
- Разрешение имен в Python
- Метод hash в Python
- Проверка условий в Python
- Получение текущей даты в Python
- Удаление специальных символов с помощью re.sub
- Пустой оператор pass в Python
- Методы classmethod и staticmethod
- Замена текста с re.sub()
- Распаковка аргументов в Python
- Использование функции enumerate()
- Работа с модулем random
- Использование *args
- Преобразование списков в словарь
- Метод Event.wait() в Python















