Pythonの型アノテーションは、コードの可読性を向上させ、エラーを早期に検出するための強力なツールです。特にUnion
型とジェネリックは、複数の型を持つことができる変数や関数の引数、戻り値に対して非常に有用です。
Union型
Union
型は、変数が複数の型のいずれかを取ることができることを示します。例えば、ある関数が整数または文字列を受け取る場合、その引数の型はUnion[int, str]
とアノテーションできます。
from typing import Union
def multiply_two(x: Union[int, str]) -> Any:
return x * 2
この関数は、整数または文字列を引数に取り、その2倍の値を返します。しかし、この関数はAny
型を返すため、返される値の型は確定していません。
ジェネリック
ジェネリックを使用すると、関数の引数と戻り値で型を一致させることができます。これにより、関数が返す値の型をより具体的に指定できます。
from typing import TypeVar
T = TypeVar('T')
def multiply_two(x: T) -> T:
return x * 2
この関数は、任意の型T
の値を引数に取り、その2倍の値を返します。引数と戻り値の型が一致するため、この関数は型安全です。
以上、PythonのUnion
型とジェネリックについて簡単に説明しました。これらの型アノテーションは、Pythonのコードをより安全で読みやすくするための重要なツールです。