有没有理由在异步/等待上使用Python的基于生成器的协同程序?

时间:2016-09-24 02:37:24

标签: python asynchronous async-await generator coroutine

尽管Python有着众所周知的“一种方法”理念,但Python(从3.5版本开始)支持两种编写协同程序的方法:

  1. enhanced generators(可能与yield from
  2. async and await
  3. 假设我们只需要支持Python> = 3.5的版本。是否有必要使用较旧的基于发生器的协同程序?或者基于async / await的协同程序是否完全取代基于生成器的协同程序?

1 个答案:

答案 0 :(得分:2)

引用Guido van Rossum himself

  

[...]最终,当调用协同程序时,我们总是使用异步函数,再次将生成器专用于PEP-342之前的角色,这是实现迭代器的一种特别有效的方式。