ざっくりいうと
基本的には、Noneを書いておく認識で大丈夫そう。
ただ、細かいところは調べる必要がある。
None
Pythonの場合、returnを明示的に宣言しないとNoneが返ってくる仕様になっています。他の言語だと、returnを書かなくても大丈夫だったりするので、時々混同しがちです。
この場合は、returnを書いていないけど、結果としてNoneが返ってくるのでNoneを書いておきます。
def func() -> None:
print(1)
NoReturn
こちらは、文字通りNo Return(何も帰ってこない)時に使うイメージです。PEPでは例として、以下のような例が挙げられていました。
from typing import NoReturn
def stop() -> NoReturn:
raise RuntimeError('no way')
この場合、return Noneを暗黙的に行う前に例外が上がるので、何も返答しません。なので、NoReturn
気になること / 要調査
- passを使った時はどうするのか
def func():
pass
- return だけの時はどうするのか
def func():
return