擅长:python、mysql、java
<p>函数不能在调用它的代码中导致中断或继续。中断/继续必须出现在循环中。你的选择是:</p>
<ol>
<li>从funcA返回一个值并用它来决定是否中断</li>
<li>在funcA中引发异常并在调用代码(或调用链的更高位置)中捕获它</li>
<li>编写一个封装中断逻辑的生成器,并在其上迭代,而不是在<code>range</code></li>
</ol>
<p>我的意思是这样的:</p>
<pre><code>def gen(base):
for item in base:
if item%3 == 0:
break
yield i
for i in gen(range(1, 100)):
print "Pass," i
</code></pre>
<p>这允许您通过基于“base”迭代器(在本例中是一个范围)将条件分组到一个生成器中,从而使条件中断。然后在这个生成器上迭代,而不是在范围本身上迭代,得到断开行为。</p>