Python是否具有允许评估函数或表达式的功能,如果评估失败(引发异常),则返回默认值.
伪代码:
评估者(函数/表达式,default_value)
求值程序将尝试执行函数或表达式并返回结果是执行成功,否则返回default_value.
我知道我使用try创建一个用户定义的函数,除了实现这一点,但我想知道电池是否已经包含在关闭和创建自定义解决方案之前.
最佳答案 不,执行此操作的标准方法是尝试…除外.
没有机制可以隐藏或抑制函数中的任何泛型异常.我怀疑许多Python用户会考虑不加思索地使用这样的函数来解析Pythonic,原因如下:
>它隐藏了有关特定异常发生的信息. (您可能不希望处理所有异常,因为某些异常可能来自其他库并指示程序无法恢复的条件,例如磁盘空间不足.)
>它隐藏了一个异常发生的事实;在异常情况下返回的默认值可能与有效的非默认值一致. (有时候是合理的,有时候并非如此.)
我认为Pythonic哲学的原理之一是“显式优于隐式”,因此Python通常避免自动类型转换和错误恢复,这是Perl等更“隐式友好”语言的特性.
虽然try … except表单可能有点冗长,但在我看来,它在清楚地显示可能发生异常的位置以及控制流围绕该异常的方面具有很多优点.