有没有比抛出异常更容易跳出嵌套循环的方法? (在 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
原文由 Michael Kuhn 发布,翻译遵循 CC BY-SA 4.0 许可协议
至少被建议过,但也 被拒绝 过。除了重复测试或重新组织代码之外,我认为没有其他方法。有时有点烦人。
在 拒绝邮件 中,van Rossum 先生提到使用
return
,这非常明智,我需要记住这一点。 :)