例如,如果我的代码执行类似的操作:
try:
for n in graph[x]:
#...
#...
if event == 0:
#do something
except IndexError:
#do the same thing
我的if
块和我的错误例外块具有相同的确切代码;所以我没有冗余线,而是想要将两个块组合在一起。我想做except IndexError or if target == 0:
之类的单一条件。有一种聪明的方法吗?
答案 0 :(得分:5)
最简单,虽然有点hacky:改变你的
if event == 0:
#do something
到
if event == 0:
raise IndexError
以便“搔痒”以下except IndexError
条款。
Cleaner是在整个do something
语句之前将def
转换为内部函数try
d;但在某些情况下确实需要更多的工作。