【python】yield from

正文

循环语句

yield from 是Python 3中的一个语法,用于在生成器中委托另一个生成器来产生值。当使用 yield from iterable 时,iterable 应该是一个可迭代对象(如列表、元组、字典、字符串等),其每个元素都是一个生成器。使用 yield from 可以将这些嵌套的生成器(子生成器)的值透明地传输到外层生成器(委派生成器)中。举个例子,我们可以通过以下代码实现一个简单的委派生成器:

def gen_outer():
    yield from range(1, 4)

for i in gen_outer():
    print(i)

输出:

1
2
3

在这个例子中,gen_outer() 是一个简单的委派生成器,它使用 yield from 委托了内部的 range(1, 4) 生成器来产生值。最终,外层生成器会产生所有子生成器的值,即输出了从 1 到 3 的整数。总之,yield from 语法可以使得生成器的编写变得更加简便和易读,特别是当需要处理多个嵌套的生成器时。

 

2. 例子

def foo():
    yield 1
    yield 2
    yield 3

def bar():
    yield from foo()

for i in bar():
    print(i)

输出:

1
2
3

 

3. 例子:

python
def foo():
    yield from range(3)

def bar():
    yield from foo()

for i in bar():
    print(i) 

输出:

1
2
3

 

参考资料

posted @   苏格拉底的落泪  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2018-06-06 【shell编程】bash =~ 用法
点击右上角即可分享
微信分享提示