擅长:python、mysql、java
<p>你的for循环中断了。实际上,您正在检查文件的每一行,并对不匹配的每一行执行函数。在</p>
<p>还请注意,调用<code>open("cache").close()</code>将重新打开缓存文件并立即关闭它,而不会关闭在for循环开始时打开的句柄。在</p>
<p>执行所需操作的一种方法是使<code>else</code>子句成为<code>for</code>循环的一部分。<strong>注意for循环中的else很棘手!</strong>。在</p>
<pre><code>def checkCache(cachedText):
cache = open( "cache" )
for line in cache:
if cachedText + ":" in line:
break
else:
requestDefinition(cachedText)
cache.close()
</code></pre>
<p>只有在循环中没有调用<code>for</code>时,<code>for</code>循环的else部分才会在循环结束时执行。在</p>