カテゴリ: Python 更新日: 2025/06/15

Pythonの型ヒント(Type Hints)とは?mypyを使った型チェック方法を初心者向けに解説

Pythonの型ヒント(Type Hints)とは?mypyを使った型チェック方法
Pythonの型ヒント(Type Hints)とは?mypyを使った型チェック方法

先生と生徒の会話形式で理解しよう

生徒

「先生、Pythonって型を指定しなくても動くって聞きましたけど、なぜ型ヒントって必要なんですか?」

先生

「型ヒントは、エディターの補完を助けたり、バグを事前に見つけたりできる補助的な仕組みです。mypyというツールを使えば、動かす前に型のチェックができますよ。」

生徒

「エラーになる前に間違いがわかるって安心ですね!具体的な使い方が知りたいです。」

先生

「では、まず型ヒントとは何か、そのしくみから見ていきましょう!」

-

1. 型ヒント(Type Hints)とは?

1. 型ヒント(Type Hints)とは?
1. 型ヒント(Type Hints)とは?

Pythonは「動的型付け言語」と呼ばれ、型の指定がなくても動きます。でも、コードを読み返したり他人と共有するとき、何のデータを扱うか分かりにくくなることがあります。

そこで、Python 3.5 から型ヒントという「型を教える注釈」が導入されました。例えば、変数にage: int = 25と書くと、「ageは整数を期待する」と明示できます。

2. なぜ型ヒントが重要?

2. なぜ型ヒントが重要?
2. なぜ型ヒントが重要?
  • コードが分かりやすくなる(自分にも他人にも)
  • エディターが補完やヒントをくれる
  • 静的解析ツールでバグを早期発見できる

まるで、料理レシピで「卵」「牛乳」と材料名が書いてあるように、コードにも期待する型が明確に書いてあると安心です。

3. 基本の書き方(変数・関数)

3. 基本の書き方(変数・関数)
3. 基本の書き方(変数・関数)

age: int = 25
name: str = "たろう"

def greet(name: str) -> str:
    return f"こんにちは、{name}さん!"

変数に: 型、関数には引数と戻り値に型を指定しています。こう書くだけで、何が入ってくるか明確になります。

4. リストや辞書の型を指定する

4. リストや辞書の型を指定する
4. リストや辞書の型を指定する

コレクション型は、typingモジュールを使って中身の型も書きます。


from typing import List, Dict, Optional

numbers: List[int] = [1, 2, 3]
user_ages: Dict[str, int] = {"たろう": 20}

def get_user_age(name: str) -> Optional[int]:
    return user_ages.get(name)
-

5. mypyを使った型チェックのやり方

5. mypyを使った型チェックのやり方
5. mypyを使った型チェックのやり方

mypyは型ヒントに従ってコードをチェックするツールです。以下の手順で使います:


pip install mypy

mypy sample.py

エラーがあれば、「intの変数に文字列を入れた」「引数に違う型を渡した」などを教えてくれます。

6. 応用:Optional(Noneを許容)やUnion(複数型対応)

6. 応用:Optional(Noneを許容)やUnion(複数型対応)
6. 応用:Optional(Noneを許容)やUnion(複数型対応)

Optional[X]で「X型かNone」の意味、Union[X, Y]で「XまたはY型」の意味になります。


from typing import Optional, Union

def divide(a: int, b: int) -> Optional[float]:
    if b == 0:
        return None
    return a / b

data: Union[int, str] = 42
data = "文字列もOK"

7. 型エラーを見つけて修正する例

7. 型エラーを見つけて修正する例
7. 型エラーを見つけて修正する例

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

result = add("5", 10)  # ここでmypyがエラーを出します

mypyを実行すると、「strを入れているよ」というエラーを出してくれるので、すぐに気づけます。

8. まとめに代わるポイント整理

8. まとめに代わるポイント整理
8. まとめに代わるポイント整理
  • 型ヒントはコードの見通しを良くするメモ書き
  • mypyで実行前に型の間違いを見つけられる
  • OptionalやUnionで柔軟に型を指定できる
  • プログラミング未経験者ほど恩恵があるツールです
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
Pythonのエラーメッセージの読み方!よくあるエラーと解決方法
PHPの関数(function)の基本を完全ガイド!初心者でもわかる使い方
Pythonの条件式でNoneを判定する方法!is None vs == None の違い
Pythonのpass文とは?一時的なコードブロックをスキップする方法
人気記事
No.1
Java&Spring記事人気No1
PHPの配列をソートする方法!sort, rsort, asort, ksortの使い方を丁寧に解説します!
No.2
Java&Spring記事人気No2
PHPとは?初心者向けにわかりやすく解説
No.3
Java&Spring記事人気No3
PHPの関数(function)の基本を完全ガイド!初心者でもわかる使い方
No.4
Java&Spring記事人気No4
PHP の文字列の基本操作(連結・切り出し・長さ)の使い方
-