私は、ファイルごとに 1 つのパブリック クラスを持つことができる Java モデルに慣れています。Python にはこの制限がないので、クラスを整理するためのベスト プラクティスは何なのか疑問に思っています。
ベストアンサー1
Python ファイルは「モジュール」と呼ばれ、ソフトウェアを「意味のある」ものに整理する 1 つの方法です。もう 1 つの方法は「パッケージ」と呼ばれるディレクトリです。
モジュールは、1 ダースまたは 2 ダースの密接に関連するクラスを持つ個別のものです。重要なのは、モジュールはインポートするもので、そのインポートはソフトウェアを読み取り、保守し、拡張する人々にとって完全に理解可能である必要があるということです。
ルールは次のとおりです:モジュールは再利用の単位です。
単一のクラスを簡単に再利用することはできません。モジュールは問題なく再利用できるはずです。ライブラリ内のすべて (およびダウンロードして追加したすべて) は、モジュールまたはモジュールのパッケージのいずれかです。
たとえば、スプレッドシートを読み取り、計算を行い、その結果をデータベースにロードするプログラムに取り組んでいるとします。メイン プログラムをどのようにしたいですか?
from ssReader import Reader
from theCalcs import ACalc, AnotherCalc
from theDB import Loader
def main( sourceFileName ):
rdr= Reader( sourceFileName )
c1= ACalc( options )
c2= AnotherCalc( options )
ldr= Loader( parameters )
for myObj in rdr.readAll():
c1.thisOp( myObj )
c2.thatOp( myObj )
ldr.laod( myObj )
インポートは、コードを概念またはチャンクに整理する方法と考えてください。各インポートに含まれるクラスの数は重要ではありません。重要なのは、ステートメントで表現する全体的な構成ですimport
。