1

私は、最近 Python の使用と学習を開始した上級プログラマーです。私は最近、この質問に出くわしました。その質問の答えは、クラス内で静的メソッドを使用する代わりに、メソッドを使用するだけでクラスをまったく使用しない方が良い設計と見なされることを示唆しています。

コード設計 1:

gameResolution.py

width = 300
height = 300
# other variables, and functions following...

screenResolution.py

width = 1920
height = 1080
# other variables and functions following...

コード設計 2:

resolution.py

class GameResolution:
    width = 300
    height = 300
    # static functions following

class ScreenResolution:
    width = 1920
    height = 1080
    # static functions following

お分かりのように、この状況では (私の意見では) Code design 2の方がはるかに理にかなっています。そのエンティティ (GameResolution や ScreenResolution など) に関連するものはすべてクラス内にパックし、それらすべてのクラスを resolution.py ファイル内にパックできます。

コード設計 1に従った場合、多数の小さな .py ファイルが作成され、それぞれが非常に小さなクラスを表すことになります。正しい ?

それで、静的メソッドが python にとって悪いアプローチであるというのは実際には本当ですか? この状況で、あなたはどうしますか?

4

1 に答える 1

2

最適なソリューションは、スタイルによって多少異なります。そうは言っても、単一の使用として静的なクラスを作成することは道だとは思いません。次のいずれかを行います。

  1. すべての解像度のもの (GameResolution/ScreenResolution/etc) を処理するクラスを作成し、それぞれに対して個別のインスタンスを作成します。
  2. widthとの名前をheightgame_widthgame_heightscreen_width変更しますscreen_height

静的メソッドを使用するときは、何らかの理由でイニシャライザとは異なる方法でオブジェクトを作成するときだけです。ただし、そのようにする必要はかなりまれです。あなたのユースケースは、すべてを表す1つのクラスに適しているか、クラスと静的メソッドの代わりにグローバルと関数が十分に異なる場合に適しているように思えます。

于 2015-07-04T14:20:11.453 に答える