Python3.10では、新たに|記号を用いたUnion型アノテーションが採択されました。これにより、複数の型を持つことが可能な値に対する型アノテーションがより簡単になりました。

# 旧来の方法
from typing import Union
value: Union[int, str] = 10

# 新しい方法
value: int|str = 10

この新しい記法は、typingモジュールからUnionOptionalをインポートする必要がなくなり、コードがすっきりします。また、|記号を使うことで、Noneもしくは他の型の値を取るといったケースでも型アノテーションが可能になります。

# 旧来の方法
from typing import Optional
value: Optional[int] = None

# 新しい方法
value: int|None = None

さらに、この新しい記法はisinstanceissubclassでも使用可能になりました。

# 旧来の方法
print(isinstance(value, (int, str)))  # True

# 新しい方法
print(isinstance(value, str|int))  # True

この新しい記法はPython3.10.0のα版で公開され、現在はVS Code + Pylance + Kiteの環境でも利用可能です。ただし、現時点ではPylanceでエラーと判定される場合があります。

以上、Python3.10の新機能である|記号を用いたUnion型アノテーションについての解説でした。この新機能により、Pythonの型アノテーションがより直感的で読みやすくなりました。

投稿者 admin

コメントを残す

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