Python で Optional[int] で nullable2021年05月01日 11時04分03秒

typing の中に Optional がある。これは、指定型か None かのどちらかになる。
#!/usr/local/bin/python3.7

from typing import Optional

def func( number: int ) -> Optional[ int ]:
    if number % 2 == 0:
        return number / 2
    else:
        return None

print( func( 4 ) )
print( func( 5 ) )
実行結果はこんな感じ。
% python3.7 /tmp/optional.py
2.0
None
Python の typing は飾りで、未一致の型を渡したり返したりしてもエラーにはならない。それでも型の指定があると、使う側、書く側としてもある程度の前提条件を付け足すことが出来るのが良い。