1

私は Python と oop に比較的慣れていないので、趣味のプロジェクトのコードの設計について質問があります。

メインプログラムで多くの変数を作成しました。これらの変数は、オブジェクトのリストです (構成パラメーターや定数ではありません)。リスト内のオブジェクトはスプライトです。

メソッドを呼び出して変数を特定のメソッドの引数として渡すことで、オブジェクト間でこれらの変数を渡しています。(参照渡し)

例えば:

spritelist = [Sprite(...), Sprite(..)]

mycollisiondetector = CollisionDetector()

mycollisiondetector.check_collision(spritelist)

次に、CollisionDetector クラスで、スプライトリストがクラスの「プライベート」メソッドに渡されます。これらのプライベート メソッドは他のメソッドを呼び出し、 spritelist ... を渡し続けます。

だから、私の質問はまさにこれです:あるメソッドから別のメソッドに変数を際限なく渡すための代替手段はありますか?

4

1 に答える 1

2

インスタンス変数 (構成定数ではない) を扱っている場合、変数をモジュール (別のファイル) に分離することは、インスタンスの状態とグローバルな状態が混在しているため、悪い習慣と見なされます。

多くの参照が繰り返し渡される場合、これは通常、クラス階層設計が不適切であることを示しています。サブクラス化を検討するか、変数の新しいクラスを定義して参照を渡すことを検討してください。詳細は、特定の状況によって異なります。コードを見ずに判断するのは困難です。

于 2013-10-17T11:23:47.813 に答える