在Python 3.5中,关键字"await"是否等同于"yield from"?
In Python 3.5, is the keyword "await" equivalent to "yield from"?
这里的文档:https://docs.python.org/3/library/asyncio-task.html,我发现很多yield from
可以用await
代替。
我想知道它们在 Python 3.5 中是否一直都是等价的。有人对此有想法吗?
不,它们不等价。 async
函数中的 await
和生成器中的 yield from
非常相似并且共享它们的大部分实现,但取决于您的 Python 版本,尝试使用 yield
或 yield from
在 async
函数内将导致完全 SyntaxError
或使您的函数成为 asynchronous generator function.
当 asyncio 文档说“await
或 yield from
”时,它们意味着 async
函数应该使用 await
而基于生成器的协程应该使用 yield from
.
这里的文档:https://docs.python.org/3/library/asyncio-task.html,我发现很多yield from
可以用await
代替。
我想知道它们在 Python 3.5 中是否一直都是等价的。有人对此有想法吗?
不,它们不等价。 async
函数中的 await
和生成器中的 yield from
非常相似并且共享它们的大部分实现,但取决于您的 Python 版本,尝试使用 yield
或 yield from
在 async
函数内将导致完全 SyntaxError
或使您的函数成为 asynchronous generator function.
当 asyncio 文档说“await
或 yield from
”时,它们意味着 async
函数应该使用 await
而基于生成器的协程应该使用 yield from
.