型ヒント: 静的型付けの恩恵
IDEの補完とmypyによる事前チェック。大規模開発に必須。
型ヒント
変数や関数の型を注釈する構文。
mypy
静的型チェッカー。
Optional
None も許容する型。
型ヒントとは?
def greet(name: str) -> str: return f"Hello, {name}!"
def add(a: int, b: int) -> int: return a + b
# コレクション型def names() -> list[str]: return ["Alice", "Bob"]
def ages() -> dict[str, int]: return {"Alice": 30, "Bob": 25}Bad
# ❌ Bad: 引数や戻り値の型が不明def process(data): result = [] for item in data: result.append(item.upper()) return resultGood
# ✅ Good: 型ヒントで明確にdef process(data: list[str]) -> list[str]: return [item.upper() for item in data]高度な型
from typing import Optional, Union, Callable, TypeVar
# Optional: None かもしれないdef find_user(id: int) -> Optional[User]: ...
# Union: 複数の型のどれか (Python 3.10+ は |)def parse(value: str | int) -> str: ...
# Callable: 関数型def apply(func: Callable[[int], int], x: int) -> int: return func(x)
# TypeVar: ジェネリックT = TypeVar('T')def first(items: list[T]) -> T: return items[0] Tip: Python 3.10+ では Optional[X] の代わりに X | None が使える。
合格ライン
関数に型ヒントを書ける
mypy でチェックできる
演習課題
課題1: 型ヒント
関数に型ヒントを追加してください。
課題2: mypy
mypy で型チェックを実行してください。