Pythonで型確認を行う方法まとめ

Pythonは動的型付け言語ですが、プログラムの安全性や可読性を高めるために「型の確認」は重要なテクニックです。本記事では、Pythonで型を確認する代表的な方法や、実践的な使い分け、型ヒントや静的型チェックツールの活用まで、幅広く解説します。

Pythonで型を確認する基本

type()関数

  • type() は、オブジェクトの「正確な型」を返します。
  • 例:
number = 42
print(type(number))  # <class 'int'>
  • 用途:デバッグや、厳密に型を知りたい場合に便利です。

isinstance()関数

  • isinstance() は、オブジェクトが「指定した型またはそのサブクラスのインスタンスか」を判定します。
  • 例:
text = "Hello"
print(isinstance(text, str))  # True
print(isinstance(text, (int, str)))  # True
  • 用途:継承関係を考慮した型チェックや、複数型の判定に最適です。

type()とisinstance()の違いと使い分け

比較項目type()isinstance()
継承関係無視する(厳密な型のみ)サブクラスもTrue
複数型の判定タプルで比較不可タプルで複数型を一度に判定可能
主な用途正確な型の特定柔軟な型チェック
  • 推奨:通常はisinstance()を使い、厳密な型判定が必要な場合のみtype()を使うのが一般的です。

型ヒント(型アノテーション)とtypingモジュール

Python 3.5以降では、型ヒント(Type Hints) を使って、変数や関数の引数・戻り値に型情報を明示できます。

基本的な型ヒントの書き方

def greet(name: str) -> str:
    return f"Hello, {name}!"
  • リストや辞書などのコレクション型は、typingモジュールを使って記述します。
from typing import List, Dict

numbers: List[int] = [1, 2, 3]
user: Dict[str, int] = {"age": 30}
  • Union型(複数型の許容)やOptional型(None許容)もサポートされています。

静的型チェックツール(mypyなど)の活用

型ヒントを記述したコードは、mypyなどの静的型チェックツールで検証できます。

mypyの使い方

1.インストール

pip install mypy

2.型チェック実行

mypy your_script.py
  • 型の不一致がある場合、エラーとして検出されます。
  • コードの品質向上やバグの早期発見に役立ちます。

まとめと実践ポイント

  • type():正確な型を知りたいときに使う
  • isinstance():継承や複数型を考慮した柔軟な型チェックに使う
  • 型ヒント:可読性・保守性向上、静的解析ツールと組み合わせて活用
  • mypy等のツール:型ヒントを活かしてバグを未然に防ぐ

Pythonの型確認は、シンプルなコードから大規模開発まで幅広く役立ちます。状況に応じて最適な方法を選び、堅牢なプログラム作成に役立ててください。

にいやん

出身 : 関西 居住区 : 関西 職業 : 組み込み機器エンジニア (エンジニア歴13年) 年齢 : 38歳(2022年11月現在) 最近 業務の効率化で噂もありPython言語に興味を持ち勉強しています。 そこで学んだことを記事にして皆さんとシェアさせていただければと思いブログをはじめました!! 興味ある記事があれば皆さん見ていってください!! にほんブログ村

Recent Posts

git config まとめ【2025年版】

Gitを使いこなす上で欠かせな…

4時間 ago

C言語 構造体まとめ

C言語は、シンプルながらも強力…

2日 ago