Python 3.10では、新たに|
記号を用いたUnion型の型アノテーションが追加されました。これにより、typing
モジュールのUnion
やOptional
クラスをインポートする必要がなくなりました。
従来、複数の型になりうる値に関しては以下のようにUnion
クラスをインポートして使う必要がありました。
from typing import Union
value: Union[int, str] = 10
また、変数や引数などでNone
もしくは他の型の値を取るといったケースではOptional
を同様にインポートして使う必要がありました。
from typing import Optional
value: Optional[int] = None
これがPython 3.10以降、以下のように|
の記号を使うことで型アノテーションができるようになりました。
value: int|str = 100
この新しい記法により、import
が不要になり、1行の文字数が多くなったりしないのでPEP8などの準拠が楽になります。
また、Optional
に関しても同様に|
記号とNone
を使うことで、import
無しで型アノテーションできるようになります。
value: int|None = None
この新機能はPython 3.10のα版が公開された際にリリースノートで発表されました。この新機能により、Pythonの型アノテーションがより楽になり、Pythonのコードがより読みやすくなることが期待されています。