擅长:python、mysql、java
<p>简单的回答。在</p>
<p>如果您有一个生成一系列值的函数,您可以使用yield在<code>generator</code>中对其进行转换。在</p>
<pre><code>def func():
for i in range(3):
yield i
list(func()) ==> [0,1,2]
for el in func():
print(el) # 0
# 1
# 2
</code></pre>
<p>每次称产量时,函数在某个地方冻结。当它再次被调用时,它将从上一个状态继续,并且不会重新开始(除非它已经完成了对元素的消费)。在</p>
<p>如果你调用这个函数,你会得到一个<code>generator</code>,这是一个你可以迭代的东西。在</p>
<p>注意,通过这种方式,您可以迭代无限序列,而不需要使用无限内存。在</p>
^{pr2}$