【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
参考资料
分类:
【03】python编程
标签:
【python编程】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2018-06-06 【shell编程】bash =~ 用法