モジュールとクラス
どれを使うべきなのか
コードをクラスにまとめるか、モジュールにまとめるかを決めるガイド
ラインを示す
○動作(メソッド)は同じだが、内部状態(属性)は異る複数のインスタンス
を必要とするときは、オブジェクトがもっとも役に立つ
○クラスは継承をサポートするが、モジュールはサポートしない。
○何かひとつだけを必要とするときには、モジュールが良い
pythonモジュールは、プログラムに何度参照されても、1個のコピー
しかロードされない
○複数の値を持つ変数があり、これらを複数の関数に引数として
渡せるときには、それをクラスとして定義した方が良い場合がある。
例として、カラーイメージを表現するのに、size,colorなどのキーを持つ
辞書を使っていたとする。プログラム内のカラーイメージごとに別々の辞書
を作り、それをscale(),transform()などの関数に引数として渡しても良いが、
キーが増えて行くとごちゃごちゃしてくる。size,colorなどの属性を持ち、
scale(), transform()などのメソッドを持つImageクラスを定義した方が
スッキリする
○問題にとってもっとも単純な方法を使う、辞書、リスト、タプルは、
モジュールよりも単純で小さく高速であり、クラスよりも普通は単純です。
グイドウのアドバイス
データ構造を作り込みすぎないようにしよう
オブジェクトよりもタプルの方がいい(名前付きタプルも試してみよう)
ゲッター/セッター関数よりも単純なフィールドを選ぶようにしよう。
組み込みデータ型はプログラマーの友達だ。数値、文字列、タプル、リスト、
集合、辞書をもっと使おう、そしてコレクションライブラリ、特にデックを
チェックしよう