Pythonは動的型付けの言語ですが、バージョン3.5から型ヒントが導入されました。型ヒントは静的型付け言語のように型によるチェックができるようになる一方で、実行時には影響を及ぼしません。この記事では、型ヒントに含まれるUnion
とTypeVar
の違いについて説明します。
Union
Union
は「str or int」のように「いくつかのある型のうちいずれか」にマッチすればOKという型ヒントです。例えば、以下のように使用します。
from typing import Union
def func(param: Union[int, str]):
pass
この関数func
は、引数param
がint
型またはstr
型のいずれかであることを期待しています。
TypeVar
一方、TypeVar
はジェネリクスの型変数を定義するための型ヒントです。TypeVar
を使用すると、特定の型変数が指定されたすべてのパラメーターが同じ型であることを強制できます。以下に例を示します。
from typing import TypeVar
T = TypeVar("T")
def func(param1: T, param2: T):
pass
この関数func
は、引数param1
とparam2
が同じ型であることを期待しています。
まとめ
Union
とTypeVar
は、Pythonの型ヒントシステムの重要な部分です。Union
は複数の型のいずれかを許容するために使用され、TypeVar
は特定の型変数が指定されたすべてのパラメーターが同じ型であることを強制するために使用されます。これらの理解は、Pythonの型ヒントを効果的に使用するための鍵となります。