【发布时间】:2020-07-09 12:16:23
【问题描述】:
网上说的是
当你在 Python 中有一个异步函数(协程)时,你用 async def 声明它,这会改变它的调用行为。特别是,调用它会立即返回一个协程对象,基本上是说“我可以使用你调用的参数运行协程,并在你等待我时返回结果”
所以当你调用 async 函数而不等待时,你会得到一个协程。
为什么我要返回一个协程,为什么不只是一个生成器?因为我不会向它发送任何未来的输入。
【问题讨论】:
-
在PEP 3156 中定义得更好。
-
令人困惑的部分是协程这个词现在用于两个相关但不同的概念:一个是 PEP 342 中定义的双向生成器,另一个是 PEP 492 中定义的异步函数。无需等待即可运行,它会为您提供 PEP 492 协程。
标签: python async-await generator python-asyncio coroutine