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

Как взаимодействуют между собой генератор и корутина

Генераторы и корутины в Python тесно связаны, так как корутины — это расширенные генераторы. Оба используют ключевое слово yield, но корутины позволяют передавать данные в генератор через send(), а не только получать их.

Пример генератора:

python
def simple_gen():
    yield 1
    yield 2

gen = simple_gen()
print(next(gen)) # 1
print(next(gen)) # 2

text

**Пример корутины:**  
```python
def coroutine():
    while True:
        x = yield
        print(f"Received: {x}")

coro = coroutine()
next(coro)  # инициализация
coro.send(10)  # Received: 10

Различия:

  • Генераторы производят значения (yield value), корутины их потребляют (x = yield).
  • Корутины поддерживают двусторонний обмен данными через send().
  • Генераторы одноразовые, корутины могут работать бесконечно.

Корутины часто используются в асинхронном программировании (например, с asyncio).

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

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

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

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