我有两个功能(发电机)。
def a():
yield 1
yield 2
def b():
yield 'A'
yield 'B'
yield a()
现在我想迭代b()
并期望它应该输出A B 1 2
。但不是。它给了这个。
In [11]: for i in b():
....: print i
....:
A
B
<generator object a at 0x10fc3ddc0>
如何获得所需的输出?
答案 0 :(得分:5)
在python3.3 +上,您可以使用yield from
:
def b():
yield 'A'
yield 'B'
yield from a()
在python3.3之前的版本中,您需要在循环中显式生成值:
def b():
yield 'A'
yield 'B'
for item in a():
yield item
答案 1 :(得分:1)
在Python 3中。您可以使用yield from
def a():
yield 1
yield 2
def b():
yield 'A'
yield 'B'
yield from a()