4

我有一个主类,它包含程序的主循环和其他变量等。

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

    def mainloop(self):
       < IRRELEVANT JUNK >

但是将“自我”传递给 blahhandlers 是一个坏主意,所以处理程序可以做一些事情,例如..

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

还是我应该直接将 blahhandler2 传递给 blahhandler 而不是传递整个主类?抱歉,如果这只是因为听起来像“废话”而无法理解。

谢谢!

4

1 回答 1

3

main将您的对象传递给BlahHandler您当前正在做的事情并没有错。

哪个更好完全取决于您的对象实际代表什么。这里有几个问题可以帮助您入门:

  • BlahHandlera拥有自己对 a 的引用是否有意义BlahHandler2,或者当 a引用BlahHandlera时,BlahHandler2它是否总是引用BlahHandler2main拥有的 a?
  • aBlahHandler真的应该引用 a main,还是main应该隐藏a 的属性BlahHandler

在开发的早期就提出这样的关于结构的问题,仅仅因为你目前拥有的东西是有效的并且不是坏的做法,并不意味着它最有意义(但它可能!)。

不要担心从速度或内存的角度传递“整个主类”,你传递的只是一个参考。

于 2012-06-05T23:34:03.487 回答