Python Glossary English

Python 3.5+collectionsпонятие

collections.abc.Coroutine

collections.abc — протоколы

Протокол корутины: awaitable с методами send/throw/close.

Синтаксис

isinstance(obj, collections.abc.Coroutine)

Вызов async-функции ничего не выполняет — он лишь создаёт объект-корутину, и если его не дождаться через await или не передать в asyncio, тело так и не отработает, а при сборке мусора вы получите RuntimeWarning про «coroutine was never awaited». Coroutine — более узкий тип, чем Awaitable: Task и Future ждать можно, но эту проверку они не проходят, так что для «можно ли сделать await» проверяйте Awaitable.

Примеры

import collections.abc as abc
async def f(): pass
c = f()
print(isinstance(c, abc.Coroutine))   # → True
c.close()

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности