Python 3.10では、型ヒントにおけるUnionの表現が大幅に簡素化されました。これはPEP 604によって導入された新機能で、従来のUnion|演算子で置き換えることが可能になりました。

従来のUnionの使用方法

Python 3.10以前では、変数やパラメータが複数の異なる型を取り得る場合、Unionを使用して表現していました。

from typing import Union

rate: Union[int, str] = 1

また、引数がNoneまたは他の型の値を取る場合は、Optionalを使用していました。

from typing import Optional

def f(param: Optional[int]) -> Union[float, str]:
    ...

Python 3.10の新しいUnion構文

Python 3.10では、UnionOptionalのインポートが不要になり、|演算子を使用して型ヒントを表現できるようになりました。

def f(param: int | None) -> float | str:
    ...

この新しい構文は、isinstance()issubclass()でも使用できます。

isinstance(1, int | str)  # True

この新しい機能はPython言語にとって驚くべき新機能ではありませんが、型注釈を使用する際にコードがクリーナーに見え、インポートが少なくなり、この方法で見た目が良くなります。

まとめ

Python 3.10の新しいUnion構文は、型ヒントをより簡単に書くことができ、コードがすっきりと見えるようになりました。これにより、Pythonの型ヒントはより使いやすく、読みやすくなりました。これからPython 3.10を使う方々にとって、この新機能は大いに役立つことでしょう。

投稿者 admin

コメントを残す

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