回答:
それは正直あなたのニーズに依存します。ほとんどの場合、関数のモジュールが探しているものになります。
Pythonクラス(imho)は、C#、C ++、またはJavaのクラスのように考えるべきではありません。一連の関数をより大きな親にグループ化する論理的な理由が必要です。データ構造はこの良い例です汎用の緩やかに収集された関数のセットではなく、クラスに直接適用される一致する関数のセット。
モジュールは、類似したシステムの全体的な階層グループ化のためのものです。通常、すべてのユーティリティ機能は単一のモジュールの下に、すべてのデータは別のモジュールの下に、データ層とコネクタはより「親」タイプのモジュールの下にあります。モジュールは単なるメンタルグルーピングであるため、その中にあるシステムの種類(クラスまたは機能、正直なところ2つが混在している可能性が高い)やモジュール下のシステム間の論理的な接続についてはあまり重要ではありません。
基本的な質問は、モジュール/クラスの異なるインスタンスが必要かどうかです。Pythonモジュールはシングルトンのようなものです-常に同じオブジェクトを参照します。つまり、インスタンスが必要な場合はクラスが必要です。
ただし、インスタンスが必要ない場合は、「オブジェクト」を初期状態に設定する必要があるかもしれません。これは単純なモジュールでは明らかに可能ですが、初期化が値を設定するよりも複雑な場合は__init__
、読みやすくするためにクラスのメソッドにコードを初期化することをお勧めします。