<一覧に戻る

型ヒントの活用

Pythonは動的型付けの言語ですが、型ヒントを使用することでコードの可読性や保守性が向上します。型ヒントは、関数の引数や戻り値の型を明示的に示すことができ、IDEやツールによる静的解析が可能になります。この教材では、型ヒントの基本的な使い方と実践的な例を紹介します。

型ヒントの基本

型ヒントを使用するためには、関数の引数と戻り値に型を指定します。以下は、一般的な型ヒントの記法です。

def function_name(param1: Type1, param2: Type2) -> ReturnType:
    # 関数の処理

ここで、Type1Type2は引数の型、ReturnTypeは戻り値の型を示します。

例1: 基本的な型ヒント

次の例では、整数型の引数を受け取り、整数を返す関数を定義します。

def add(a: int, b: int) -> int:
    return a + b

result = add(3, 5)
print(result)  # 出力: 8

この関数は、2つの整数を受け取り、その合計を返します。型ヒントにより、引数と返り値の型が明示化され、読みやすさが向上します。

例2: リストを扱う型ヒント

次に、リストを引数に取り、リストの合計を計算する関数を定義します。

from typing import List

def sum_list(numbers: List[int]) -> int:
    total = 0
    for num in numbers:
        total += num
    return total

result = sum_list([1, 2, 3, 4, 5])
print(result)  # 出力: 15

ここでは、List[int]を使用して、整数のリストを引数として受け取ることを示しています。これにより、関数がどのようなデータを期待しているのかが明確になります。

例3: 辞書を扱う型ヒント

辞書を引数に取る関数の例も見てみましょう。

from typing import Dict

def get_average(scores: Dict[str, int]) -> float:
    total = sum(scores.values())
    return total / len(scores)

result = get_average({'Alice': 85, 'Bob': 90, 'Charlie': 78})
print(result)  # 出力: 84.33333333333333

この関数は、学生名をキー、スコアを値とする辞書を受け取り、平均スコアを計算します。Dict[str, int]型ヒントにより、どのようなデータを期待しているかが明示されています。

例4: Optional型ヒント

引数がオプショナルである場合、Optionalを使って型ヒントを指定することもできます。

from typing import Optional

def greet(name: Optional[str] = None) -> str:
    if name is None:
        return "Hello, Guest!"
    return f"Hello, {name}!"

print(greet())         # 出力: Hello, Guest!
print(greet("Alice"))  # 出力: Hello, Alice!

この例では、nameがオプショナルで、引数が与えられない場合はデフォルト値Noneを使用します。

例5: 型エイリアスの活用

複雑な型の定義を簡略化するために、型エイリアスを使用することもできます。

from typing import Tuple

Point = Tuple[float, float]

def distance(point1: Point, point2: Point) -> float:
    return ((point2[0] - point1[0]) ** 2 + (point2[1] - point1[1]) ** 2) ** 0.5

result = distance((1.0, 2.0), (4.0, 6.0))
print(result)  # 出力: 5.0

Pointという型エイリアスを定義し、2次元座標を表現します。これにより、関数の引数がより明確になります。

型ヒントを活用するメリット

  1. 可読性の向上: 型ヒントは、関数の引数や戻り値の型を明示化することで、コードを理解しやすくします。
  2. 静的解析の活用: IDEや型チェッカー(例: mypy)を使用して、型の不一致を早期に検出できます。
  3. ドキュメンテーションの強化: 型ヒントがあることで、関数の使用方法についてのドキュメンテーションが自動的に生成されることがあります。

型ヒントを活用することで、Pythonコードの質を向上させることができますので、ぜひ積極的に使用してみてください。

出力結果: