Python3.10では、新たに|
記号を用いたUnion型アノテーションが採択されました。これにより、複数の型を持つことが可能な値に対する型アノテーションがより簡単になりました。
# 旧来の方法
from typing import Union
value: Union[int, str] = 10
# 新しい方法
value: int|str = 10
この新しい記法は、typing
モジュールからUnion
やOptional
をインポートする必要がなくなり、コードがすっきりします。また、|
記号を使うことで、None
もしくは他の型の値を取るといったケースでも型アノテーションが可能になります。
# 旧来の方法
from typing import Optional
value: Optional[int] = None
# 新しい方法
value: int|None = None
さらに、この新しい記法はisinstance
やissubclass
でも使用可能になりました。
# 旧来の方法
print(isinstance(value, (int, str))) # True
# 新しい方法
print(isinstance(value, str|int)) # True
この新しい記法はPython3.10.0のα版で公開され、現在はVS Code + Pylance + Kiteの環境でも利用可能です。ただし、現時点ではPylanceでエラーと判定される場合があります。
以上、Python3.10の新機能である|
記号を用いたUnion型アノテーションについての解説でした。この新機能により、Pythonの型アノテーションがより直感的で読みやすくなりました。