Курс 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
- Запуск внешних программ с subprocess
- Метод __ilshift__ для битового сдвига влево
- Установка и использование Python-dateutil
- Python: Фильтрация списков с помощью filter()
- Функция divmod() в Python
- Метод join для наборов
- Комментарии в Python.
- Конвертация коллекций в Python.
- Ускорение обработки данных с %autoawait
- Получение размера объекта с sys.getsizeof()
- Оптимизация интернирования строк
- Поиск наиболее частого элемента списке
- Замена элементов в списке с помощью генераторов списков
- Конкатенация строк в Python
- Управление контекстом с помощью декоратора contextmanager
- Модуль antigravity: генерация координат
- Получение ID процесса
- Профилирование с cProfile
- Работа с модулем Calendar
- Переопределение метода len
- Операция += для списков
- Шаблоны и наследование в Flask
- Работа с итераторами в Python
- Работа с defaultdictами в Python
- Управление виртуальными окружениями в Python
- Руководство по использованию Colorama
- Модуль pprint
- Оператор «is not» в Python
- Операции с датами в Python
- Печать комбинаций в Python с Itertools
- Взаимодействие с sys
- Хранение данных с помощью dataclasses
- Обучение модели с указанием эпох
- Лямбда-функции в Python
- Циклы for в Python
- Конвертация текстовых чисел с помощью Numerizer
- Сортировка и обратный порядок
- Структуры данных в Python
- Настройка Cron
- Дизассемблирование Python кода
- Python Calendar Usage
- Подсчет элементов с помощью Counter из collections















