假设我有三个不同的调用名称为 something
、something1
和 something2
。
现在,我正在这样调用它:
try:
something
something1
something2
except Keyerror as e:
print e
请注意,在上面的代码中,如果某些操作失败,则不会执行something1和something2等后续操作。
期望的结果是:
try:
something
except KeyError as e:
print e
try:
something1
except KeyError as e:
print e
try:
something2
except KeyError as e:
print e
如何在不使用太多try except块的情况下实现上述代码?
编辑:
所以,我选择的答案有效。但其他一些答案也有效。我选择它是因为它最简单,我稍微修改了一下。
以下是基于答案的解决方案。
runs = [something, something1, something2]
for func in runs:
try:
func()
except Keyerror as e:
print e
exception
参数,然后调用者会传入一个元组,如果需要多个参数的话。 - kindalldef f(*args, x): pass
时会出现“SyntaxError”。 - user2357112from __future__ import print_function; def ignoring(*exceptions, **kwargs): action = kwargs.get("action", print)
。 - orlp