for i in range(1,1000):
try:
x = some_crazy_function(my_parm(i))
if x in massive:
raise Exception()
massive.append(x)
x = dict(qnother_crazy_functionsl(x.replace('X','Y')))
x = new_func(x['constant'])[0]
next.append(x)
except:
break
我是python的新手,我在保留别人的代码的同时运行这个片段
对我来说,这似乎是一种退出循环的可怕方式。 它是在python中编码的可接受方式,我会习惯它还是它看起来很糟糕?
答案 0 :(得分:1)
在最简单的情况下,break
将是摆脱循环的最佳(也是最简单)方式:
if x in massive:
break
但是,如果抛出和捕获异常更适合您的用例,我建议首先定义您自己的用户定义的异常类:
class MassiveException(Exception):
pass
接下来,您可以像这样扔掉它:
if x in massive:
raise MassiveException()
然后像这样抓住它:
except MassiveException:
... # do something here
这样做会更好,因为它会让你的意图变得清晰,并且除了可以吞下你真正不想吞下的其他例外情况之外,还可以摆脱它们。