擅长:python、mysql、java
<p>您可以将<code>hi</code>更新为生成器工厂,并在每次使用时调用它。这比您当前的解决方案更干净,但可能由于其他原因而无法在您的案例中工作。在</p>
<pre><code>def hi(iterable):
def wrapper():
for val in iterable:
yield val
return wrapper
</code></pre>
<p>与您当前使用的用法类似:</p>
^{pr2}$
<p>如果您想保持与原始示例完全相同的语法,可以创建一个类似的瘦类。在</p>
<pre><code>class hi:
def __init__(self, iterable):
self.__iter__ = lambda: iterable
</code></pre>