我试图将一个类添加到另一个类库中:
class A(object):
def __init__(self, name):
self.name = name
class AMixin(object):
def mixinExample(self):
return ("in AMixin.mixinExample" + self.name)
def MixIn(TargetClass, MixInClass):
if MixInClass not in TargetClass.__bases__:
TargetClass.__bases__ += (MixInClass,)
if __name__ == "__main__":
a_instance = A("Q7")
MixIn(A,AMixin)
print(a_instance.mixinExample())
我收到此错误:
TypeError: Cannot create a consistent method resolution
order (MRO) for bases object, AMixin
我收到此错误的原因是'object'固有的两个类(A和AMixin)?
您正在尝试将A
的基数设置为(object, AMixin)
。此顺序意味着object
方法应覆盖AMixin
方法。
但是,AMixin
继承自object
,这意味着AMixin
方法应覆盖object
方法。
不可能同时满足这两个要求,因此是错误。