Python 3.10では、型アノテーションにおけるUnion型の使い方が大きく変わりました。これまでのUnion型は、複数の型を受け入れるために使用されていました。しかし、Python 3.10では、|演算子を使用してUnion型を表現することが可能になりました。

# Python 3.10以前
from typing import Union
def square(number: Union[int, float]) -> Union[int, float]:
    return number ** 2

# Python 3.10以降
def square(number: int | float) -> int | float:
    return number ** 2

この新しい記法の利点は、コードがより読みやすくなること、そしてtyping.Unionをインポートする必要がなくなることです。

また、この新しい記法はisinstanceissubclassのような型チェックで使われる場合にも利用できます。

# Python 3.10以前
print(isinstance(value, (int, str)))

# Python 3.10以降
print(isinstance(value, int | str))

この新しい記法は、Pythonの型アノテーションをより簡潔に、そして直感的に書くことを可能にします。Python 3.10のこの新機能は、Pythonの型システムをより強力で使いやすくする一歩と言えるでしょう。

投稿者 admin

コメントを残す

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