擅长:python、mysql、java
<p>你想要一个迭代器,它能不断地产生值,直到你停止向它请求新值为止?简单使用</p>
<pre><code>it = iter(function, sentinel)
</code></pre>
<p>它对每个迭代步骤调用<code>function()</code>,直到结果<code>== sentinel</code>。在</p>
<p>所以选择一个永远不能被你想要的函数返回的sentinel,比如<code>None</code>。在</p>
^{pr2}$
<p>如果您想监视计算机上的某些状态,可以这样做</p>
<pre><code>iter_mystate = iter(getstate, None)
</code></pre>
<p>反过来,它对每个迭代步骤无限调用<code>getstate()</code>。在</p>
<p>但是要小心函数返回<code>None</code>作为有效值!在这种情况下,您应该选择一个保证唯一的sentinel,可能是为这个作业创建的对象:</p>
<pre><code>iter_mystate = iter(getstate, object())
</code></pre>