我正在使用 Python 3.5.1,我希望能够判断一个函数是否作为协程对象返回,但我找不到协程类型的定义位置,最近我一直在使用下面的方法通过使用函数实例化协程来获取类型的代码段。
async def _f():
pass
COROUTINE_TYPE = type(_f())
必须有更好的方法来做到这一点,我的问题是这个类型在哪里定义以便我可以直接使用它?
请您参考如下方法:
访问协程类型的最佳方式可能是通过 types模块:
import types
types.CoroutineType # here it is
这实际上不是定义协程类型的地方 - types.py 做的事情与你正在做的几乎相同 - 但它是标准的 Python级访问类型的方式。
如果您想查看类型的实际定义,那在 Include/genobject.h 中和 Objects/genobject.c .寻找说 PyCoroWhatever 或 coro_whatever 的部分。
