Python 3.5+typesпонятие
types.CoroutineType
генераторы и корутины
Тип объекта-корутины, который возвращает вызов функции async def. Это ещё не результат: корутину нужно await-нуть или передать в asyncio.run.
Синтаксис
isinstance(obj, types.CoroutineType)
Вызов async-функции без await ничего не выполняет — он только создаёт CoroutineType; забытый объект при сборке даст RuntimeWarning «coroutine ... was never awaited». Проверка isinstance(x, types.CoroutineType) узкая: генераторная корутина из @types.coroutine и любые объекты с __await__ (asyncio.Future, Task) ей не соответствуют. Чтобы принять всё, что можно await-нуть, используйте inspect.isawaitable или collections.abc.Awaitable.
Примеры
import asyncio
import types
async def fetch():
return 42
c = fetch()
print(isinstance(c, types.CoroutineType)) # → True
print(asyncio.run(c)) # → 42
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности