【Python】型ヒント”union”の使い方

この記事では、Pythonの型ヒントの一つであるunion型ヒントについて解説します。

union型ヒントを使うことで、関数やメソッドの引数や戻り値に複数の異なる型を指定することができます。

具体的な使い方や注意点、さらには応用例まで紹介します。

初心者の方でもわかりやすく解説していきます。

目次から探す

union型ヒントとは

union型ヒントは、Pythonの型ヒントの一つであり、関数やメソッドの引数や戻り値に複数の異なる型を指定することができます。

つまり、union型ヒントを使用することで、引数や戻り値が複数の型のいずれかであることを示すことができます。

union型ヒントの使い方

union型ヒントの定義方法

union型ヒントを使用するには、引数や戻り値の型ヒントの位置にUnion[型1, 型2, ...]という形式で指定します。

たとえば、数値または文字列を受け取る関数の場合、引数の型ヒントにUnion[int, str]と指定することができます。

union型ヒントの利用方法

union型ヒントを使用することで、関数やメソッドの引数や戻り値に複数の型を指定することができます。

これにより、柔軟な型の指定が可能となります。

たとえば、引数が数値または文字列のいずれかである場合、関数内で引数の型をチェックする必要がありません。

union型ヒントの注意点

union型ヒントを使用する際には、いくつかの注意点があります。

まず、union型ヒントを使用することで、引数や戻り値の型が複数の候補となるため、型のチェックが厳密になりません。

そのため、実行時に型エラーが発生する可能性があります。

また、union型ヒントを使用する場合、コードの可読性が低下する可能性があるため、適切な場面で使用することが重要です。

union型ヒントの具体的な例

数値または文字列を受け取る関数の例

以下の例は、引数として数値または文字列を受け取る関数の例です。

from typing import Union

def print_value(value: Union[int, str]) -> None:
    print(value)

print_value(10)  # 数値を受け取る場合
print_value("Hello")  # 文字列を受け取る場合

リストまたはタプルを受け取る関数の例

以下の例は、引数としてリストまたはタプルを受け取る関数の例です。

from typing import Union, List, Tuple

def print_values(values: Union[List[int], Tuple[str, str]]) -> None:
    for value in values:
        print(value)

print_values([1, 2, 3])  # リストを受け取る場合
print_values(("Hello", "World"))  # タプルを受け取る場合

オプションの引数を受け取る関数の例

以下の例は、オプションの引数を受け取る関数の例です。

from typing import Union

def print_message(message: str, count: Union[int, None] = None) -> None:
    if count is None:
        print(message)
    else:
        for _ in range(count):
            print(message)

print_message("Hello")  # オプションの引数を指定しない場合
print_message("Hello", 3)  # オプションの引数を指定する場合

union型ヒントの応用例

ユーザー入力のバリデーション

ユーザーからの入力を受け付ける際に、入力値の型をチェックする際にunion型ヒントを使用することができます。

たとえば、数値または文字列を受け取る関数の場合、ユーザーからの入力が数値か文字列かをチェックする必要があります。

外部APIのレスポンスの型ヒント

外部APIからのレスポンスを受け取る際に、レスポンスの型を指定する際にunion型ヒントを使用することができます。

たとえば、APIからのレスポンスが辞書型またはリスト型のいずれかである場合、union型ヒントを使用して適切な型を指定することができます。

データベースのカラムの型ヒント

データベースのカラムの型を指定する際に、union型ヒントを使用することができます。

たとえば、カラムが数値型または文字列型のいずれかである場合、union型ヒントを使用して適切な型を指定することができます。

union型ヒントはPython 3.10以降でサポートされています。

目次から探す