擅长:python、mysql、java
<p>每次调用函数时,它都返回一个生成器对象。每次调用next时,您都会得到第一个项,它是<code>0 * 0</code>,因为您不是在同一个对象上调用next(每次都是一个新对象)。但在第二种情况下,您在一个生成器对象上循环,它将继续使用生成器,直到它到达<code>StopIteration</code>。你知道吗</p>
<p>为了更好地演示,您可以从生成器函数创建两个迭代器对象,并同时在它们上循环:</p>
<pre><code>In [17]: g = gen()
In [18]: k = gen()
In [19]: for i, j in zip(g, k):
...: print(i, j)
...:
0 0
1 1
4 4
</code></pre>