擅长:python、mysql、java
<p>一般来说,您不需要用yield来包装它,除非您打算做一些额外的工作。例如。如果要将每个值乘以2:</p>
<pre><code>def times2iteritems(self):
#note: it is not necessary to use yield here
return ((k, v*2) for k, v in self.__somedict.iteritems())
</code></pre>
<p>这两种实现的区别在于,在第一种情况下,您向迭代器返回一个<strong>引用,而在第二种情况下,您执行<strong>管道化<strong>。你知道吗</p>