python_yield嵌套
[原文]{.ul} 标签 [python]{.ul} [generator]{.ul} [yield]{.ul}
我有两个函数(发电机)。
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>
如何获得所需的输出?
最佳答案
在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
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!