900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 【python面向对象学习笔记】继承

【python面向对象学习笔记】继承

时间:2022-07-22 05:20:13

相关推荐

【python面向对象学习笔记】继承

继承

# 继承class Animal:atype="哺乳动物"def __init__(self,name,age,sex) -> None:self.name=nameself.age=ageself.sex=sexdef eat(self):print(f"{self.name} is eating...")class Person(Animal):atype="哺乳高等动物"def __init__(self, name, age, sex,hobbie) -> None:super().__init__(name, age, sex)self.hobbie=hobbiedef talk(self):print(f"[perspn] {self.name} is talking,his hobbie is {self.hobbie}")def eat(self): # 重写父类方法# Animal.eat(self) # 若想在父类方法的基础上扩充,需要把父类方法先写进来super().eat() # 本行代码和上一行代码实现的效果是一样的print("人在优雅的吃...") # 在全局调用子类时,会先执行父类方法,再执行子类方法。class Dog(Animal):def chase_rabit(self):print("狗在追兔子...")if __name__=="__main__":p=Person("Alex",22,"M","basketball")d=Dog("Bob",5,"M")p.eat()p.talk()d.eat()print(p.atype)print(d.atype)

多继承

# 多继承class ShenxianBase:def fight(self):print("神仙始祖们在天界打架...")class Shenxian:"""神仙类"""def fly(self):print("神仙都会飞...")# def fight(self):#print("神仙在打架...")class MonkeyBase:def fight(self):print("猿猴在打架...")class Monkey(MonkeyBase):"""猴子类"""def eat(self):print("猴子都喜欢吃桃子...")def fight(self):print("猴子在打架")# py2.3之前,经典类(class A:)使用深度优先,新式类(class A(object):)使用广度优先# py3中,经典类和新式类使用的都是广度优先class MonkeyKing(Shenxian,Monkey): # 同时继承神仙和猴子,当多个父类同时拥有一个名字的实例方法时,(顺序遵循广度优先(第一个子类->...第n个子类->第一个子类的父类->...第n个子类的父类))def play_golden_stick(self):print("孙悟空在玩金箍棒...")m=MonkeyKing()m.fly()m.eat()m.play_golden_stick()m.fight()

多继承继承顺序,C3算法

class A:def test(self):print("from A")class B(A):def test(self):print("from B")class C(A):def test(self):print("from C")class B2:def test(self):print("from B2")class C2:def test(self):print("from C2")class D(B,B2):def test(self):print("from D")class E(C,C2):def test(self):print("from E")class F(D,E):def test(self):print("from F")if __name__=="__main__":f=F()f.test()print(F.__mro__)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。