我的问题实际上是关于由父类创建的两个对象如何相互通信。我的真实用例是一个 PySide GUI 应用程序,其中两个位于 CentralWidget 上的小部件需要连接一个信号和插槽。
然而,这个问题比这更普遍,所以我有一个愚蠢的例子来证明这个问题。
特别是 Son 中的“asksister”方法,我知道父母有一个女儿,我需要连接这两个方法。但是,通过硬链接连接,意味着我无法在不创建整个对象结构的情况下运行单元测试。
有没有更好的办法?
如果我在这里发布我的真实代码(简化后)会不会那么蹩脚
class Parent(object):
def __init__(self):
self.son = Son(self)
self.daughter = Daughter(self)
self.son.dohomework()
class Son(object):
def __init__(self, parent):
self.parent = parent
def dohomework(self):
print 'The answer is {0}'.format(self.asksister())
def asksister(self):
return self.parent.daughter.answer()
class Daughter(object):
def __init__(self, parent):
self.parent = parent
def answer(self):
return 42
if __name__ == '__main__':
parent = Parent()