除了Python中的ValueError

时间:2017-07-22 21:04:39

标签: python

是否有更好的方法来编写此代码:

def add (exe1, exe2):
    try:
        a = float (exe1)
        b = float (exe2)
        total = float (a + b)
    except ValueError:
        return None
    else:
        return total

2 个答案:

答案 0 :(得分:1)

您可以在try/except区块中进行全部操作(计算和return):

def add(exe1, exe2):
    try:
        return float(exe1) + float(exe2)
    except ValueError:
        return None

另请注意,函数的默认返回值为None,因此第二个return不是必需的(您可以使用pass),但它使代码更具可读性。

答案 1 :(得分:0)

如果您发现contextlib.suppress更具可读性,也可以使用它。

from contextlib import suppress
def add(exe1, exe2):
    with suppress(ValueError):
        return float(exe1) + float(exe2)

请参阅文档here