Какие знаешь Awaitable объекты в asyncio

Python Middle Без компании
Какие знаешь Awaitable объекты в asyncio
Ответы
В asyncio awaitable объектами являются: - **Coroutine** – результат вызова асинхронной функции (async def): ``` async def foo(): return 42 coro = foo() # корутина await coro ``` - **Task** – обёртка над корутиной, планируемая на выполнение в event loop: ``` task = asyncio.create_task(foo()) await task ``` - **Future** – низкоуровневый объект, представляющий результат отложенной операции: ``` fut = asyncio.Future() await fut # будет ждать, пока fut.set_result() не вызовут ``` - **Awaitable-объекты с методом `__await__`** – пользовательские классы могут реализовать этот метод: ``` class MyAwaitable: def __await__(self): yield from asyncio.sleep(1) return "done" await MyAwaitable() ``` Все они поддерживают оператор `await` и могут быть использованы в асинхронном контексте.