擅长:python、mysql、java
<p>使用协同程序这样的生成器可以有效地暂停函数,并可以使用<code>next()</code>驱动它</p>
<pre><code>>>> def tworeturns(x):
... print(f"hi {x}")
... yield
... print(f"bye {x}")
... yield
...
>>> corou = tworeturns("bob")
>>> next(corou)
hi bob
>>> next(corou)
bye bob
</code></pre>
<p>下面是我在cli上做的一个快速演示</p>
<p>以你的例子来说,你可以这样做:</p>
<pre><code>def tworeturns(x):
intermediate = do-something(x)
yield intermediate
final = do-something(intermediate)
yield final
corou = tworeturns(x)
first_value = next(corou)
second_value = next(corou)
</code></pre>