Python 3.x では、次のような関数の戻り値の型アノテーションを使用するのが一般的です。
def foo() -> str:
return "bar"
「void」型の正しい注釈は何ですか?
私は3つの選択肢を検討しています:
def foo() -> None:
- 論理的ではないと私は思います。なぜなら
None
型ではないからです。
- 論理的ではないと私は思います。なぜなら
def foo() -> type(None):
- 私が知る限りの最良の構文を使用して
NoneType
、
- 私が知る限りの最良の構文を使用して
def foo():
- 明示的な戻り値の型情報を省略します。
オプション 2 が最も論理的であるように思われますが、オプション 1 の例もすでにいくつか見てきました。
ベストアンサー1
シンプルさと仕様への準拠のためにオプション 1を使用します。
def foo() -> None
オプション1と2は「同じ」です。PEP 484 -- 型ヒント、...
型ヒント内で使用される場合、式は
None
と同等とみなされますtype(None)
。
ただし、型ヒントの仕様では は使用されませんtype(...)
。
これが、ほとんどの例でNone
戻り値の型として が使用される理由です。