擅长:python、mysql、java
<p>您没有指定足够的信息。我有两个问题:</p>
<ol>
<li>调用<code>foo.check()</code><em>幂等</em>是否意味着它总是返回相同的值并且没有副作用</李>
<li>代码中是否有一条路径,在该路径中,您可以在不首先调用n-1<sup>th</sup>事件的情况下,在由continue语句</em>控制的同一块中访问对<code>foo.check()</code><em>的n<sup>th</sup>调用</李>
</ol>
<p>例如,如果答案的答案是yes,而第二个问题是no,那么您可以删除对<code>foo.check()</code>调用的第一次出现之外的所有内容,因为返回值显然是<code>False</code>,否则您将永远无法到达第二次出现</p>
<P>如果第一个问题的答案是肯定的,第二个问题是肯定的,那么如果对^ {CD5>}的调用是昂贵的,那么我可以考虑前面的设置:</p>
<pre><code>check_result = foo.check()
</code></pre>
<p>然后用<code>check_result</code>替换对<code>foo_check()</code>的每个调用。但最终你还是需要做所有的检查。但在所有情况下,您都可以创建函数<code>check_and_reset</code>:</p>
<pre><code>def check_and_reset():
if foo_check():
reset()
return True
return False
</code></pre>
<p>然后您的代码变成:</p>
<pre><code>if check_and_reset(): continue
</code></pre>