【发布时间】:2011-06-11 07:04:52
【问题描述】:
我正在寻找一个等效于以下手写函数的标准函数(运算符、装饰器):
def defaulted(func, defaultVal):
try:
result = func()
except:
result = defaultVal
return result
谢谢!
【问题讨论】:
-
你知道
except:is often evil吗?您可能不希望这样的函数吞下语法错误... -
@delnan:请不要再重复这个神话,即 except: 会阻止 SyntaxErrors。除非您正在动态编译代码(或首先在该块中导入模块,这是同一件事),否则它不会。它阻止了足够多的真实问题,我们不需要夸大它有多糟糕。
-
@Joe:噢!当然它不会吞下 SyntaxError,对于错误信息,我们深表歉意。
-
虽然它不会吞下 SyntaxErrors,但它会吞下 KeyboardInterrupt 和 SystemExit,这两者通常都不想捕获。
-
(除了
except)发布的代码有什么问题?这对我来说似乎很好。你不喜欢它什么?
标签: python exception standard-library