Python 3.10では、新たに|記号を用いたUnion型の型アノテーションが追加されました。これにより、typingモジュールのUnionOptionalクラスをインポートする必要がなくなりました。

従来、複数の型になりうる値に関しては以下のように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のコードがより読みやすくなることが期待されています。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です