Python:将主类传递给其他类是个坏主意?

时间:2012-06-05 23:23:20

标签: python class

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

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而不是传递整个主类?对不起,如果这是不可理解的,只因为它听起来像'哇'。

谢谢!

1 个答案:

答案 0 :(得分:3)

main对象传递给BlahHandler并没有任何问题。

哪一个更好完全取决于你的对象实际代表什么。以下是一些可以帮助您入门的问题:

  • BlahHandlerBlahHandler2有自己的引用是否有意义,或BlahHandler引用BlahHandler2是否始终指的是BlahHandler2 mainBlahHandler拥有的main
  • main是否真的有BlahHandler的引用,或属于{{1}}的属性应该隐藏在{{1}}之内?

在开发的早期就提出类似问题的结构,只是因为你现在的工作并且不是不好的做法,并不意味着它最有意义(但它可能!)。

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