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

Пост Python позволяет перегружать многие разные операторы, и оператор сдвига — один из них.

18 июня 2026
Б
Библиотека Python разработчика | Книги по питону
Python позволяет перегружать многие разные операторы, и оператор сдвига — один из них. Вот пример того, как можно создать композицию функций с использованием этого оператора. Здесь символы, похожие на стрелки, показывают направление потока данных: from collections import deque from math import sqrt class Compose: def __init__(self): self._functions = deque() def __call__(self, *args, **kwargs): result = None for f in self._functions: result = f(*args, **kwargs) args = [result] kwargs = dict() return result def __rshift__(self, f): self._functions.append(f) return self def __lshift__(self, f): self._functions.appendleft(f) return self compose = Compose sqrt_abs = (compose() << sqrt << abs) sqrt_abs2 = (compose() >> abs >> sqrt) print(sqrt_abs(-4)) # 2.0 print(sqrt_abs2(-4)) # 2.0 Объяснение: << — добавляет функцию в начало цепочки (выполняется первой). >> — добавляет функцию в конец цепочки (выполняется последней). В примере sqrt_abs(-4) сначала берёт abs(-4) → 4, а затем sqrt(4) → 2.0. sqrt_abs2(-4) делает то же самое, но функции добавлены в другом порядке. 📲 Мы в MAX 👉@BookPython
4 · 1.4K ·

Рядом в ленте

ББиблиотека Python разработчика | Книги по питонуВ Python числа с плавающей точкой могут иметь значение NaN. Его можно получить с помощью math.nan. NaN не равен ничему, включая самого себя: >>> math.nan == matББиблиотека Python разработчика | Книги по питонуКласс объекта доступен через атрибут __class__: >>> [1, 2].__class__ <class 'list'> Однако более привычный способ получить класс — использовать функцию type. Кр
это сообщение
ББиблиотека Python разработчика | Книги по питону🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv BashББиблиотека Python разработчика | Книги по питонуВсе объекты в Python создаются с помощью вызова метода __new__. Даже если вы определяете свой собственный __new__ для класса, вы должны вызвать super().__new__(
ББиблиотека Python разработчика | Книги по питонуБиблиотека Python разработчика | Книги по питону@BookPython · канал · Технологии
17 943подписчиков725средний охват поста
Лента площадки Открыть в Telegram

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

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