Русский
Открыть в Telegram

Пост Модуль functools для манипуляций с функциями

25 июня 2026
Б
Библиотека Python разработчика | Книги по питону
Модуль functools для манипуляций с функциями Модуль functools в Python предоставляет инструменты для работы с функциями, позволяя выполнять различные манипуляции с ними. Вот некоторые из наиболее важных функций и возможностей, которые предоставляет functools: 1. functools.partial: Позволяет зафиксировать некоторые аргументы функции и создать новую функцию с предопределенными значениями. from functools import partial def multiply(x, y): return x * y double = partial(multiply, 2) print(double(5)) # Вывод: 10 2. functools.reduce: Применяет функцию к паре элементов в последовательности, сокращая ее до одного значения. Обычно используется для аккумуляции значений. from functools import reduce numbers = [1, 2, 3, 4] product = reduce(lambda x, y: x * y, numbers) print(product) # Вывод: 24 3. functools.lru_cache: Кэширует результаты вызовов функции, чтобы ускорить повторные вызовы с теми же аргументами. Полезно для функций с дорогими вычислениями. from functools import lru_cache @lru_cache(maxsize=None) def fibonacci(n): if n < 2: return n return fibonacci(n - 1) + fibonacci(n - 2) print(fibonacci(10)) # Вывод: 55 4. functools.wraps: Декоратор, который сохраняет метаданные оригинальной функции (такие как имя и документация) при создании декоратора. from functools import wraps def my_decorator(func): @wraps(func) def wrapper(*args, **kwargs): print("Что-то делаем перед вызовом функции") return func(*args, **kwargs) return wrapper @my_decorator def say_hello(): """Выводит приветствие.""" print("Привет!") print(say_hello.__name__) # Вывод: say_hello print(say_hello.__doc__) # Вывод: Выводит приветствие. 5. functools.total_ordering: Упрощает реализацию всех методов сравнения для класса, определяя только несколько из них. from functools import total_ordering @total_ordering class Point: def __init__(self, x, y): self.x = x self.y = y def __eq__(self, other): return (self.x, self.y) == (other.x, other.y) def __lt__(self, other): return (self.x, self.y) < (other.x, other.y) p1 = Point(1, 2) p2 = Point(3, 4) print(p1 < p2) # Вывод: True print(p1 <= p2) # Вывод: True Эти функции и декораторы делают functools мощным инструментом для функционального программирования в Python. 📲 Мы в MAX 👉@BookPython
7 · 1.2K ·

Рядом в ленте

ББиблиотека Python разработчика | Книги по питонуСтандартный модуль json имеет интерфейс командной строки, который может быть полезен для форматирования JSON с помощью одного только Python. Этот модуль называеББиблиотека Python разработчика | Книги по питонуГенератор можно остановить. Ты можешь явно вызвать g.close(), но обычно это делает сборщик мусора. Когда вызывается close, в точке, где выполнение генератора бы
это сообщение
ББиблиотека Python разработчика | Книги по питонуКогда вы пишете собственный метод __repr__ для какого-то объекта, обычно нужно включать представление его атрибутов. Для этого при форматировании следует вызываББиблиотека Python разработчика | Книги по питону🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv Bash
ББиблиотека Python разработчика | Книги по питонуБиблиотека Python разработчика | Книги по питону@BookPython · канал · Технологии
17 954подписчиков552средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем