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

Как используется генератор в библиотеке asyncio

Генераторы в asyncio используются для создания корутин (coroutines) — специальных функций, которые могут приостанавливать своё выполнение и возобновлять его позже. Корутины позволяют писать асинхронный код в синхронном стиле.

Ключевые моменты:

  1. Корутина создаётся с помощью async def (Python 3.5+)
  2. Внутри корутины используется await для ожидания других корутин или Future
  3. Генераторный стиль (yield from) использовался в Python 3.4, но сейчас устарел

Пример:

python
import asyncio

async def fetch_data():
    print("Начало загрузки")
    await asyncio.sleep(2)  # Имитация долгой операции
    print("Данные загружены")
    return {"data": 123}

async def main():
    task = asyncio.create_task(fetch_data())
    print("Делаем что-то параллельно")
    await task
    print("Результат:", task.result())

asyncio.run(main())

Важно: современный asyncio использует async/await вместо генераторов, но под капотом сохраняется схожий механизм приостановки/возобновления выполнения.

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

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

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

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