Python 3.10では、型ヒントの書き方に大きな変更がありました。特にUnionの書き方が大きく変わり、より簡潔で直感的になりました。

Unionの新しい書き方

Python 3.10以降、Unionをインポートする必要はなくなりました。これはPEP 604の一部で、Unionを完全に|演算子に置き換えることができます。

例えば、以前は以下のように書いていました:

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

Optionalの新しい書き方

また、引数がNoneである可能性があることを示すために使用していたOptionalも同様に新しい書き方が可能になりました。

# Old syntax
from typing import Optional, Union

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

# New syntax in 3.10
def f(param: int | None) -> float | str:
    ...

isinstance()とissubclass()での新しい書き方

新しい書き方はisinstance()issubclass()でも使えます。

>>> isinstance(1, int | str)
True

この新しい書き方はPython言語にとって驚くべき新機能ではありませんが、型注釈を使用する際に|演算子を使用することでコードが見やすくなります。これにより、必要なインポートが減り、見た目が良くなります。

投稿者 admin

コメントを残す

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