我遇到了一些关于 python 的多重继承的问题。
class TestFather(object):
fathers = {}
path = "/C"
def __init__(self):
super(TestFather, self).__init__()
# self.fathers = file_to_dict(self.path)
class TestMother(object):
mothers = {}
path = "/D"
def __init__(self):
super(TestMother, self).__init__()
# self.mothers = file_to_dict(self.path)
class TestChild(TestFather, TestMother):
def __init__(self):
super(TestChild, self).__init__()
t = TestChild()
help(t)
变量路径将存储母亲和父亲的文件目录。当我打印出父亲和母亲的词典时,我注意到母亲词典不知何故从父亲那里获取了所有信息。在阅读了 Guido 关于 MRO 的博客http://python-history.blogspot.com/2010/06/method-resolution-order.html并观看了 Raymond Hettinger 的 2015 PyCon 视频超级棒后,我意识到 TestChild 类只继承了路径来自 TestFather 的变量,并完全忽略来自 TestMother 的路径变量。
我的问题是,TestChild 有没有办法使用其两个父母各自的路径,而不是只采用具有更高 MRO 的路径。我知道更改变量名可以解决问题,但正如 Raymond 所说,必须有更好的方法。