Python 3.10では、型アノテーションにおけるUnionの使用が大幅に簡素化されました。これはPEP 604によって導入されたもので、|
演算子を使用してUnionを表現することが可能になりました。
従来、複数の型を持つ可能性がある値に対しては、以下のようにUnion
クラスをインポートして使用する必要がありました。
from typing import Union
value: Union[int, str] = 10
しかし、Python 3.10では、以下のように|
の記号を使うことで型アノテーションができるようになりました。
value: int | str = 10
この変更により、Union
やOptional
クラスのインポートが不要になり、型アノテーションがより簡単になりました。また、1行の文字数が多くなったりしないのでPEP8などの準拠が楽になります。
この新機能は、isinstance
やissubclass
での型チェックにも利用できます。これまで複数の型を対象とする場合にはタプルを使う必要がありましたが、今後はタプルの代わりに|
記号を使って書くこともできるようになります。
この新機能により、Pythonの型アノテーションはより直感的で読みやすくなり、Pythonのコードをより型安全に書くことが可能になりました。