Python多重继承错误:对象没有属性
我不熟悉Python多重继承错误:对象没有属性,python,Python,我不熟悉python,并且问了一个非常基本的问题。我试图理解多重继承。我有两个父类,即Speciy和Living,还有一个子类Bird,但当我运行以下程序时,我得到错误“Bird”对象没有属性“\u Living\u house”。请告诉我我做错了什么 但是,当我使用单一继承时,即classBird(Speciy)或class Bird(Living)可以很好地工作。因此,只有在使用多重继承时才会出现错误 class Speciy: def __init__(self,legs=4,c
python
,并且问了一个非常基本的问题。我试图理解多重继承。我有两个父类,即Speciy和Living,还有一个子类Bird,但当我运行以下程序时,我得到错误“Bird”对象没有属性“\u Living\u house”
。请告诉我我做错了什么
但是,当我使用单一继承时,即classBird(Speciy)或class Bird(Living)
可以很好地工作。因此,只有在使用多重继承时才会出现错误
class Speciy:
def __init__(self,legs=4,colour="White"):
self.__legs=legs
self.__colour=colour
def get_legs(self):
return self.__legs
def set_legs(self,legs):
self.__legs=legs
def get_colour(self):
return self.__colour
def set_colour(self,colour):
self.__colour=colour
class Living:
def __init__(self,house="city"):
self.__house=house
def get_house(self):
return self.__house
def set_house(self,house):
self.__house=house
class Bird(Speciy,Living):
def __init__(self,wings=2):
super().__init__()
super().__init__()
self.__wings=wings
def get_wings(self):
return self.__wings
def set_wings(self,wings):
self.__wings=wings
b1=Bird(4)
print(b1.get_wings())
b1.set_colour("Green")
print(b1.get_colour())
print(b1.get_house())
我已经用我自己解决了这个问题
Speciy.__init__(self,legs,colour)
Living.__init__(self,house)
当我只使用单一继承时,我没有得到错误,因此你的评论无效。我已经用类Bird(Living,Speciy)替换了类Bird(Speciy,Living),解决了我自己的问题。我认为对
super()
的调用应该是super(Speciy,self)。\uu init\uuuuuuuu()
和super(Living,self)。\uu init。适合我。@7t7Studios感谢您帮助解决此问题