有没有比抛出异常更容易摆脱嵌套循环的方法?(在 Perl 中,您可以为每个循环指定标签,并至少继续一个外部循环。)
for x in range(10): for y in range(10): print x*y if x*y > 50: "break both loops"
即,有没有比以下更好的方法:
class BreakIt(Exception): pass try: for x in range(10): for y in range(10): print x*y if x*y > 50: raise BreakIt except BreakIt: pass
至少有人建议过,但也拒绝过。我认为除了重复测试或重新组织代码之外,没有其他方法。有时有点烦人。
在拒绝信息中,van Rossum 先生提到 using return,这真的很明智,我个人需要记住这一点。:)
return