Встречается на собеседованиях • сегодня

Зачем нужен yield, кроме создания генераторов в Python

yield в Python используется не только для создания генераторов, но и для реализации корутин — функций, которые могут приостанавливать и возобновлять своё выполнение. Это позволяет писать асинхронный код без использования колбэков или сложных цепочек промисов.

Пример использования yield для корутин:

python
def coroutine():
    print("Start")
    while True:
        value = yield
        print(f"Received: {value}")

c = coroutine()
next(c)  # Инициализация корутины
c.send(42)  # Отправка значения в корутину

Также yield используется в контексте yield from (Python 3.3+) для делегирования генераторов, что упрощает композицию генераторов:

python
def gen1():
    yield from range(3)

def gen2():
    yield from gen1()
    yield from 'abc'

В асинхронном программировании (до появления async/await) yield использовался для реализации event loop'ов, например в библиотеке Tornado.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы