Python 3.5+inspectфункция
inspect.iscoroutine()
корутины и генераторы
Проверяет, что объект — корутина, созданная вызовом async def-функции; не путать с самой функцией.
Синтаксис
inspect.iscoroutine(object) -> bool
Проверка узкая: только «родные» корутины. Генератор с @types.coroutine, Future и объект с __await__ дают False, хотя их можно ждать через await — для этого вопроса есть isawaitable. Созданную и не запущенную корутину надо либо дождаться, либо закрыть (.close()), иначе Python предупредит «coroutine was never awaited».
Примеры
import inspect
async def job():
return 1
class Waiter:
def __await__(self):
yield
c = job()
print(inspect.iscoroutine(c), inspect.iscoroutine(job)) # → True False
print(inspect.iscoroutine(Waiter()), inspect.isawaitable(Waiter())) # → False True
c.close() # не запущенную корутину закрываем
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности