<p>以下代码工作正常:</p>
<pre><code>def file_gen(f_name):
f = open(f_name)
for line in f:
yield line
gen_line = file_gen("foo.html")
gen_line.next() # '<!DOCTYPE>\n'
gen_line.next() # '<html> \n'
gen_line.next() # ... next line in file
</code></pre>
<p>但是这个函数会引发<code>StopIteration</code>。我不明白为什么?在</p>
^{pr2}$
<p>在第二个next()上得到StopIteration,因为您只得到一个结果。你是不是故意要这么做?在</p>
<pre><code>def file_gen(f_name):
f = open(f_name)
lines = f.readlines()
for line in lines:
yield line
</code></pre>