<pre><code>def generator():
for i in range(10):
yield "foo" + "baz"
for i in range(10):
yield "bar" + "baz"
</code></pre>
<p>我想把代码做成这样:</p>
<pre><code>def baz(s):
for i in range(10):
yield s + "baz"
def generator():
baz("foo")
baz("bar")
</code></pre>
<p>但是,此代码的行为不同。你知道吗</p>
<p>如何消除生成器中包含<code>yield</code>的重复代码?你知道吗</p>
<p>我发现了<code>yield from</code>。这正是我想要的,但是我的项目是在python2.7中。你知道吗</p>
<p>你可以这样重写:</p>
<pre><code>def baz(s):
for i in range(10):
yield s + "baz"
def generator():
for s in ["foo", "baz"]:
for b in baz(s):
yield b
</code></pre>