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

Пост yield from — элегантная передача управления

2 марта 2026
Б
Библиотека Python разработчика | Книги по питону
yield from — элегантная передача управления Если вы пишете генераторы, которые вызывают другие генераторы — забудьте про for x in sub(): yield x. Есть способ проще и мощнее. Оператор yield from позволяет передавать элементы из подгенератора напрямую, без лишнего кода. Но фишка не только в лаконичности — он также автоматически пробрасывает исключения и возвращаемые значения из подгенератора. Вот классика: def gen(): for x in range(3): yield x def wrapper(): for x in gen(): yield x Можно короче и лучше: def wrapper(): yield from gen() Но главное — yield from пробрасывает return-значение из подгенератора (начиная с Python 3.3): def sub(): yield 1 yield 2 return 'done' def main(): result = yield from sub() print('Sub returned:', result) for _ in main(): pass # Выведет: Sub returned: done А ещё через yield from можно проксировать значения внутрь генератора — например, в сопрограммах: def delegator(): result = yield from coroutine() print('coroutine done:', result) def coroutine(): x = yield y = yield return x + y g = delegator() next(g) # Старт next(g) # coroutine ждет x g.send(10) # x = 10 print(g.send(20)) # y = 20 → return 30 # Выведет: coroutine done: 30 Итог: если вы пишете генераторы — освоение yield from даст вам лаконичный синтаксис, проброс return-значений, исключений и взаимодействие на новом уровне. 📲 Мы в MAX 👉@BookPython
13 · 1.7K ·

Рядом в ленте

ББиблиотека Python разработчика | Книги по питонуPython предоставляет мощную библиотеку для работы с датой и временем — datetime. Интересный момент: объекты datetime имеют специальный интерфейс для поддержки чББиблиотека Python разработчика | Книги по питону🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv Bash
это сообщение
ББиблиотека Python разработчика | Книги по питонуdefault_factory в dataclass: мощнее, чем кажется Многие используют dataclass как удобный способ задать структуру с полями. Но редко кто по-настоящему раскрываетББиблиотека Python разработчика | Книги по питонуСтандартный модуль json имеет интерфейс командной строки, который может быть полезен для форматирования JSON исключительно средствами Python. Модуль называется
ББиблиотека Python разработчика | Книги по питонуБиблиотека Python разработчика | Книги по питону@BookPython · канал · Технологии
17 943подписчиков725средний охват поста
Лента площадки Открыть в Telegram

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

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