制作第三个继承前两个类属性的类时出现错误。第一个类的功能将通过,但是当访问第二个类的功能时,我得到一个错误:
class3' object has no attribute 'othernum
代码如下:
class class1():
def __init__(self):
self.number = 10000
def getNum(self):
return self.number
class class2():
def __init__(self):
self.othernum = 1111
def displaynum(self):
return self.othernum
class class3(class1, class2):
pass
newperson = class3()
print(newperson.getNum())
print(newperson.displaynum())
答案 0 :(得分:1)
找到答案。
class class3(class1, class2):
def __init__(self):
class1.__init__(self)
class2.__init__(self)
答案 1 :(得分:1)
@Ishaan Sathaye提出的答案确实是正确的。但是请注意,有多种机制可用于在多继承层次结构中初始化基类。请参见Calling parent class init with multiple inheritance, what's the right way?,尤其是标题为所有基类的对象都是为协作继承而设计的。
因此,如果您的3个类是为合作继承而设计的,那么我们将:
class class1():
def __init__(self):
super().__init__()
self.number = 10000
def getNum(self):
return self.number
class class2():
def __init__(self):
super().__init__()
self.othernum = 1111
def displaynum(self):
return self.othernum
class class3(class1, class2):
def __init__(self):
super().__init__()
newperson = class3()
print(newperson.getNum())
print(newperson.displaynum())