何かを書き留める何か

数学や読んだ本について書く何かです。最近は社会人として生き残りの術を学ぶ日々です。

『Effective Python』Item 14: Noneを返すよりも例外を発生させよう

『Effective Python』の続き。第二章突入。 www.effectivepython.com

第二章は函数の扱い方。返り値にNoneというのはやったことがないが、結構使われているのだろうか。

何が問題なのかは次のコードで一発だと思う。

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

x, y = 1, 0
result = divide(x, y)
if result is None:
    print('Invalid inputs')
else:
    print('Result is %.1f' % result)

x, y = 0, 5
result = divide(x, y)
if not result:
    print('Invalid inputs')
else:
    print('Result is %.1f' % result)

この問題点の対策として例外送出を紹介している。

次の項目はちょっと長いから時間が掛かりそう…。