以下异步发电机代码直接取自PEP525:
async def gen():
await asyncio.sleep(0.1)
v = yield 42
print(v)
await asyncio.sleep(0.2)
但是,当我调用时(使用python3.6):
print(asyncio.iscoroutinefunction(gen), asyncio.iscoroutine(gen))
我得到:
False, False
为什么异步生成器不能识别为一个协程函数?你知道吗
有没有其他方法可以将它标识为一个协程函数?你知道吗
您想使用^{} (和^{} 作为调用
gen()
的结果):异步函数和异步生成器函数之间没有类型层次关系。你知道吗
另外,} decorator 。如果您不需要支持可能仍然使用这些代码基的旧代码基(早于python3.5),那么我只需要使用
asyncio.iscoroutine*()
函数存在的唯一原因是支持不能用于创建异步生成器的legacy generator-based ^{inspect.is*()
函数。你知道吗相关问题 更多 >
编程相关推荐