Python Glossary English

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Сообщить о неточности