Pythonの型ヒントには、Union
とLiteral
という2つの便利な型があります。これらは、特定の値の集合を表現するために使用されます。
Union型
Union
型は、「xまたはy」を意味します。つまり、Union
の引数は型でなければなりません。
from typing import Union
def func(x: Union[int, str]):
pass
上記の例では、func
関数の引数x
はint
型またはstr
型のいずれかであることを示しています。
Literal型
一方、Literal
型は、「文字通り5または文字通り6」を意味します。つまり、Literal
の引数はリテラルでなければなりません。
from typing_extensions import Literal
def func(x: Literal[5, 6]):
pass
上記の例では、func
関数の引数x
は文字通り5または6であることを示しています。
Union型とLiteral型の組み合わせ
Union
型とLiteral
型を組み合わせることで、特定の値の集合をより具体的に表現することができます。
from typing import Union
from typing_extensions import Literal
def func(x: Union[Literal[5], Literal[6]]):
pass
上記の例では、func
関数の引数x
は文字通り5または6であることを示しています。
このように、Union
型とLiteral
型を組み合わせることで、Pythonの型ヒントはさらに強力で表現豊かになります。これらの型を適切に使用することで、コードの可読性と保守性を向上させることができます。