我一直在Python中工作,遇到了一些很常见的情况。 我有五个陈述都陷入了一个共同的陷阱 FooException和BarException。我要管理他们每一个 这些异常,但即使在之后引发异常也会继续处理 做了一些处理。现在,我可以这样做:
try:
foo()
except (FooException, BarException):
pass
try:
bar()
except (FooException, BarException):
pass
try:
baz()
except (FooException, BarException):
pass
try:
spam()
except (FooException, BarException):
pass
try:
eggs()
except (FooException, BarException):
pass
但这确实是冗长的,而且是对DRY的极端违反。相当野蛮的力量 显而易见的解决方案是这样的:
^{pr2}$其用法如下:
>>> results = wish_i_had_macros_for_this(
['foo()','bar()','baz','spam()','eggs()'],
['FooException','BarException'],
globals(),
locals())
[None,None,None,SpamException,None]
有更好的方法吗?在
此版本还允许执行语句:
这个怎么样?在
相关问题 更多 >
编程相关推荐