编写高质量Python代码的59个有效方法 第2章 函数 第14

2018-09-19  本文已影响0人  淡淡的咸鱼

定义一个求商函数,要点是分母不能为0:

def divide(a, b):
    try:
        return a/b
    except ZeroDivisionError as e:
        return None

人们这样调用这个函数:

result = divide(x, y)
if not result:
    print("Invalid inputs")
else:
    print(result)

这个函数的缺陷在于当分子为0时,本应输出为0的result被判断为False而输出Invalid inputs


另一种写法:

def divide(a, b):
    try:
        return a/b
    except ZeroDivisionError as e:
        raise ValueError("Invalid inputs") from e

为了应对这种抛出异常的函数(抛出异常应写入开发文档),调用者就不会像上面一样调用了

try:
    result = divide(x, y)
except ValueError:
    print("Invalid inputs")
else:
    print(result)

要点:

上一篇 下一篇

猜你喜欢

热点阅读