クラス、モジュール、トップレベル関数の使い分け

2025/08/01

クラス
状態(インスタンスごとのインスタンス変数)を持ち、インスタンスを生成できる。

モジュール
インスタンスを生成できないが、モジュール自身の状態(インスタンス変数)を持つことはできる。

トップレベル関数
クラスやモジュールに属さない関数で、グローバルな名前空間で定義される。

選択の流れ:

  1. インスタンス、または状態(インスタンスごとのデータ)を持つ必要があるか?
    • はい → クラスを使用
    • いいえ → 次へ
  2. 以下の条件のいずれかに当てはまるか?
    • はい → モジュールを使用
    • いいえ → トップレベル関数を使用
    • 条件:
      • 名前空間を提供したい(衝突を避けたい)
      • 再利用性が必要
      • 拡張性が必要
      • テストが容易であることが望ましい
      • モジュール自身の状態を持ちたい

バックリンク