Skip to main content
 首页 » 编程设计

python之嵌套 python 生成器(一个在另一个里面)

2025年05月04日15zfyouxi

我有两个函数(生成器)。

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