在 python 3.3中新出现的句法:yield from。
一、简单使用
如果生成器函数需要产出另一个生成器生成的值,传统的解决方法是使用嵌套的 for 循环,下面来看例子:
传统例子:

chain 生 成 器 函 数 把 操 作 依 次 交 给 接 收 到 的 各 个 可 迭 代 对 象 处 理。
因此下面来说明 yield from 使用。

可以看出,yield from i 完全代替了内层的 for 循环。在这个示例中使用 yield from 是对 的,而且代码读起来更顺畅,不过感觉更像是语法糖。除了代替循环之外,yield from 还 会创建通道,把内层生成器直接与外层生成器的客户端联系起来。把生成器当成协程使用 时,这个通道特别重要,不仅能为客户端代码生成值,还能使用客户端代码提供的值。在下面的协程讲解中,会说明为什么 yield from 不只是语法糖而已。
本文深入探讨了Python 3.3中引入的yieldfrom语法,解释了如何用它简化生成器函数,替代传统的for循环,以及在协程中创建通道的重要作用。

被折叠的 条评论
为什么被折叠?



