我有两台发电机.第一个生成器有时需要调用第二个生成器并从中返回它产生的值:
def a():
for _b in b():
yield _b
def b():
yield 1
yield 2
for _a in a():
print _a
Run Code Online (Sandbox Code Playgroud)
有更优雅的方式来做到这一点:
for _b in b():
yield _b
Run Code Online (Sandbox Code Playgroud)
我试过这个:
yield *b()
Run Code Online (Sandbox Code Playgroud)
但肯定它不起作用.我有Python 2.6.
我认为你的意思是PEP380.它可以从Python 3.3获得.看起来像:
yield from b()
Run Code Online (Sandbox Code Playgroud)
Python2中没有特殊的语法.你只需使用for循环.
a你问题中的功能实际上是完全没用的.你可以b在它的位置使用它.