coroutines.iscoroutine

実装

_COROUTINE_TYPES = (types.CoroutineType, types.GeneratorType,
                    collections.abc.Coroutine, CoroWrapper)

_iscoroutine_typecache = set()

def iscoroutine(obj):
    """Return True if obj is a coroutine object."""
    if type(obj) in _iscoroutine_typecache:
        return True

    if isinstance(obj, _COROUTINE_TYPES):
        # Just in case we don't want to cache more than 100
        # positive types.  That shouldn't ever happen, unless
        # someone stressing the system on purpose.
        if len(_iscoroutine_typecache) < 100:
            _iscoroutine_typecache.add(type(obj))
        return True
    else:
        return False

引数

  • obj :

戻り値

  • Boolean

内容

  • 引数で渡されたオブジェクトが、コルーチンであるかを判定

    • True : コルーチン

    • False : Not コルーチン