Во что оборачивается корутина перед помещением в Event Loop
Python
Middle
Без компании
Во что оборачивается корутина перед помещением в Event Loop
Ответы
Корутина оборачивается в объект `Task` перед помещением в Event Loop. `Task` — это подкласс `Future`, который управляет выполнением корутины и хранит её состояние.
Пример:
```
import asyncio
async def my_coroutine():
await asyncio.sleep(1)
print("Done")
# Создание Task из корутины
task = asyncio.create_task(my_coroutine())
# Event Loop автоматически управляет Task
asyncio.run(task)
```
- `asyncio.create_task()` оборачивает корутину в `Task` и сразу планирует её выполнение.
- `Task` отслеживает состояние корутины (`pending`, `running`, `done`).
- Если корутина возвращает значение, оно сохраняется в `Task.result()`.
- Исключения также сохраняются в `Task.exception()`.
Без явного создания `Task` корутина не будет выполняться автоматически.