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:
    ...

この新しい書き方は、UnionOptionalクラスのimportが不要になり、コードがすっきりします。また、isinstanceissubclassでも使えるようになりました。

この新機能は、Pythonの型アノテーションがより楽になる正常進化的な感じでしょうか。

以上、Python 3.10におけるUnionの新しい書き方についての記事でした。Python 3.10を使ってみて、新しい型アノテーションの書き方を体験してみてください。

投稿者 admin

コメントを残す

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