【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

浙公网安备 33010602011771号