4

プログラムのメインループやその他の変数などを保持するメイン クラスがあります。

class main:
    def __init__(self):
       blah = 'blah'
       blah2 = 'blah'
       blahhandler = BlahHandler.BlahHandler(self)
       blahhandler2 = BlahHandler.BlahHandler2(self)

    def mainloop(self):
       < IRRELEVANT JUNK >

しかし、ブラーハンドラーに「self」を渡すのは悪い考えなので、ハンドラーは次のようなことを行うことができます..

#In class 'BlahHandler'
self.main.blahhandler2.doBlah()
print(self.main.blah)

または、メインクラス全体を渡すのではなく、blahhandler2 を直接 blahhandler に渡す必要がありますか? すべてが「何とか」のように聞こえるため、これが理解できない場合は申し訳ありません。

ありがとう!

4

1 に答える 1

3

main現在行っているように、オブジェクトをに渡すことに問題はありませんBlahHandler

どちらが優れているかは、オブジェクトが実際に何を表しているかに完全に依存します。始めるためのいくつかの質問があります:

  • BlahHandlerに独自の参照があることは意味がありますかBlahHandler2、それともaBlahHandlerがaを参照している場合、BlahHandler2それは常にBlahHandler2それがmain所有していることを参照していますか?
  • BlahHandler本当にへの参照が必要ですかmain、それともその属性をmain非表示にする必要がありBlahHandlerますか?

開発の早い段階で構造についてこのような質問をします。現在持っているものが機能し、悪い習慣ではないからといって、それが最も理にかなっているとは限りません(しかし、そうかもしれません!)。

速度やメモリの観点から「メインクラス全体」を渡すことについて心配する必要はありません。渡すのは参照だけです。

于 2012-06-05T23:34:03.487 に答える