假设我有以下内容
class ClassA (object):
def meth1() ..
class ClassB (ClassA):
def meth1() ..
def meth2() ..
def meth3() ..
class ClassC (ClassB):
calls meth2() and meth(3)
我正在尝试重构ClassC,使其从ClassA继承。然而,ClassC使用了ClassB中的两个重要方法,我不想重写它们,它们必须留在ClassB之下。另外,我不希望ClassA中的meth1被ClassB覆盖。 有没有办法从ClassC中的ClassB调用meth2和meth3,让ClassC继承ClassA并使用ClassA中的meth1? 我希望我的解释清楚。如果你能给我一些有关这方面的文件,我将不胜感激。你知道吗
如果方法确实需要保留在它们的原始类下,我可能会选择多重继承,尽管我可能需要更多关于项目细节的信息来明确地说。你知道吗
使
ClassC
成为和ClassB
的子类:ClassC().meth1()
将调用ClassA的meth1
,而ClassC().meth2()
和ClassC().meth3()
将调用ClassB
的方法,因为ClassC
中未定义的方法是looked-up in the base classes in order。你知道吗基类的搜索顺序由方法解析顺序(MRO)控制。有关MRO的更多信息,请参见Michele Simionato's article和Shalabh Chaturvedi's article。你知道吗
相关问题 更多 >
编程相关推荐