【Python】型ヒント(タイプヒント)の書き方を初心者向けに解説!mypyでチェックする方法も

引数と戻り値の型を書いて読みやすいコードに

※このサイトの記事内では広告を掲載している場合があります。

Pythonのコードを読んでいると、def add(a: int, b: int) -> int: のように、引数の後ろに「: int」や「-> int」が付いているのを見かけることがあります。これが型ヒント(タイプヒント)です。

この記事では、型ヒントの基本の書き方から、リストや辞書、None を許す書き方、mypy でのチェックまでを、初心者向けに解説します。型ヒントは書かなくても動きますが、読みやすさとバグの早期発見に大きく役立ちます。

型ヒントとは?

型ヒントとは、変数や関数の引数・戻り値に「どんな型を想定しているか」を書き添える機能です。Pythonは実行時に型をチェックしないため、型ヒントを間違えてもそのままでは動いてしまいます。主な役割は、人間とエディタ、チェックツールに意図を伝えることです。

変数と関数の基本の書き方

name: str = "田中"
age: int = 28
price: float = 1980.5
is_admin: bool = False


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


print(add(3, 5))  # 8

変数は「変数名: 型 = 値」、関数は「引数名: 型」と「-> 戻り値の型」で書きます。戻り値がない関数には -> None を付けます。関数の基本はPythonの関数(def)の書き方で確認できます。

リスト・辞書・タプルの型ヒント

Python 3.9 以降では、list や dict をそのまま使って中身の型を指定できます。

scores: list[int] = [80, 92, 75]
user: dict[str, int] = {"age": 28, "height": 170}
point: tuple[int, int] = (3, 5)


def average(values: list[int]) -> float:
    return sum(values) / len(values)


print(average(scores))  # 82.33333333333333

それぞれのデータ型の特徴は、辞書(dict)やタプルの記事も参考にしてください。

None を許す・複数の型を許す

Python 3.10 以降では、| を使って「AまたはB」を表せます。None を許す場合にもよく使います。

def find_user(user_id: int) -> str | None:
    users = {1: "田中", 2: "佐藤"}
    return users.get(user_id)


print(find_user(1))  # 田中
print(find_user(9))  # None

3.9 以前では typing モジュールの Optional[str] や Union[int, str] を使います。使っているバージョンに合わせて書き分けましょう。

型ヒントは、チーム開発や仕事でコードを書くときに重宝されます。実務レベルの書き方を学べる環境を探しているなら、プログラミングスクールの選び方と比較軸も参考になるはずです。

型ヒントは「間違えても動く」ことを確認

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


print(add("こん", "にちは"))  # こんにちは(エラーにはなりません)

このように、型ヒントに反した値を渡しても実行時にはエラーになりません。ミスに気づくには、次に紹介するチェックツールを使います。

mypyで型をチェックする

mypy は、型ヒントをもとにコードを実行前に検査してくれるツールです。ターミナルで次のようにインストールして使います。

pip install mypy
mypy sample.py
# sample.py:5: error: Argument 1 to "add" has incompatible type "str"; expected "int"

VS Code などのエディタでも、型ヒントがあると補完が賢くなり、間違いに赤線が引かれるようになります。

もっと効率的にPythonを学びたい人へ

型ヒントは、実務のコードを読む力を伸ばしたい方にこそ身につけてほしい知識です。実践的なコードを書いてレビューを受けたい方は、マンツーマン指導のスクールも検討してみてください。

Winスクールの「Python Winner」は、マンツーマン指導で未経験からPythonを学べ、転職サポートや無料カウンセリングにも対応しています。まずは無料カウンセリングで、自分に合うか確かめてみてはいかがでしょうか。

※本記事には広告(アフィリエイトリンク)を含みます。

Pythonプログラミング|マンツーマンレッスンで初めてをプロに育てる【Python Winner】

他のスクールとも比べたい方は、スクールの比較記事もあわせてご覧ください。資格取得を目指す方はPython3エンジニア認定基礎試験の参考書比較も参考になります。

まとめ

  • 型ヒントは、変数・引数・戻り値の型を書き添える機能
  • 変数は「名前: 型」、関数は「引数: 型」と「-> 戻り値の型」
  • list[int] や dict[str, int] で中身の型も指定できる
  • str | None のように「または」を表せる(3.10以降)
  • 型ヒントだけでは実行時にチェックされず、mypy などで検査する

まずは自分が書いた関数に、引数と戻り値の型ヒントを付けてみましょう。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

CAPTCHA