Pythonは動的型付けの言語ですが、型ヒントを使用することでコードの可読性や保守性が向上します。型ヒントは、関数の引数や戻り値の型を明示的に示すことができ、IDEやツールによる静的解析が可能になります。この教材では、型ヒントの基本的な使い方と実践的な例を紹介します。
型ヒントを使用するためには、関数の引数と戻り値に型を指定します。以下は、一般的な型ヒントの記法です。
def function_name(param1: Type1, param2: Type2) -> ReturnType:
# 関数の処理
ここで、Type1
やType2
は引数の型、ReturnType
は戻り値の型を示します。
次の例では、整数型の引数を受け取り、整数を返す関数を定義します。
def add(a: int, b: int) -> int:
return a + b
result = add(3, 5)
print(result) # 出力: 8
この関数は、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]
を使用して、整数のリストを引数として受け取ることを示しています。これにより、関数がどのようなデータを期待しているのかが明確になります。
辞書を引数に取る関数の例も見てみましょう。
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]
型ヒントにより、どのようなデータを期待しているかが明示されています。
引数がオプショナルである場合、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
を使用します。
複雑な型の定義を簡略化するために、型エイリアスを使用することもできます。
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次元座標を表現します。これにより、関数の引数がより明確になります。
型ヒントを活用することで、Pythonコードの質を向上させることができますので、ぜひ積極的に使用してみてください。