Python 3.10では、Union
をインポートせずに、|
演算子を使ってUnion
型を指定できるようになりました。これはPEP 604によるもので、Union
を全く使わずに、|
演算子で置き換えることができます。
例えば、startswith()
メソッドの引数は、typing.Union
を使って、次のように定義できます。
from typing import Union
def startswith(prefix: Union[str, tuple[str,...]]) -> bool:
...
しかし、PEP 604により、Union
を使わずに、|
演算子を使って指定できるようになりました。
def startswith(prefix: str | tuple[str,...]) -> bool:
...
この新しい書き方は、Union
やOptional
クラスのimport
が不要になり、コードがすっきりします。また、isinstance
やissubclass
でも使えるようになりました。
この新機能は、Pythonの型アノテーションがより楽になる正常進化的な感じでしょうか。
以上、Python 3.10におけるUnion
の新しい書き方についての記事でした。Python 3.10を使ってみて、新しい型アノテーションの書き方を体験してみてください。