【Python】returnを記述しなかった関数が返す値

pythonコードを書いている際に、returnを書いていない(返り値の指定がない)関数が何を返しているのかが気になったためメモ。

結果からいうとNoneを返している。

def foo():
    pass
foo() is None  # True

明示的にreturnを書いた場合も同様にNoneを返している模様。

def bar():
    return
bar() is None # True
foo() is bar() # True

returnがないとなんとなく落ち着かないのは何故だろう……。

参考

関数の中で返り値が指定されていない場合の扱い | 関数・メソッド | プログラミング言語の比較 | hydroculのメモ