首先,自己编的错误代码:
class Animal:
def eat(self):
print("吃")
def drink(self):
print("喝")
def run(self):
print("跑")
def sleep(self):
print("睡")
class Dog(Animal):
# class Dog:
def bark(self):
print("汪汪叫")
class XiaoTianQuan(Dog):
def fly(self):
print("我会飞")
class Cat(XiaoTianQuan):
def catch(self):
print("抓老鼠")
xtq = XiaoTianQuan()
xtq.fly()
xtq.bark()
xtq.sleep()
xtq.catch()
只显示了xtq.fly();xtq.bark();xtq.sleep(),而最后一行的xtq.catch()不能显示
其次,正确代码和出错原因:
`class Animal:
def eat(self):
print("吃")
def drink(self):
print("喝")
def run(self):
print("跑")
def sleep(self):
print("睡")
class Dog(Animal):
# class Dog:
def bark(self):
print("汪汪叫")
class XiaoTianQuan(Dog):
def fly(self):
print("我会飞")
class Cat(XiaoTianQuan):
def catch(self):
print("抓老鼠")
xtq = XiaoTianQuan()
xtq.fly()
xtq.bark()
xtq.sleep()
# xtq.catch()
xiaomao = Cat()
xiaomao.catch()
只要把xtq.catch()注释掉,并添加xiaomao = Cat(),xiaomao.catch()`部分就会运行成功!
原因:
xtq 是xiaotianquan 的对象,并不是cat 里的,所以不能使用cat 里的catch。
最后,在最后一行 如果再添加一句
xiaomao.eat()
那么也会运行成功!
这个时候说明:可以继承三个父类。