当前位置: 首页 > 后端技术 > Python

python类的继承

时间:2023-03-26 19:42:07 Python

什么是继承?继承是一种创建类的方法。一个类可以继承一个或多个父类。原始类称为基类或超类。继承可以很容易的帮助子类拥有父类的属性和方法,减少代码冗余。子类可以定义自己的方法和属性,也可以重写父类的方法和属性。实现继承创建一个父类Animal,在父类中定义方法或属性:classAnimal():def__init__(self,kind,age):self.kind=kindself.age=ageprint("Thisistheparentclass__init__方法")definfo(self):print('Thisisa'+self.kind,'thisyear'+self.age+'yearsold')animal=Animal('dog','5')animal.info()#这是父类的__init__方法#这是一只狗,它今年5岁然后创建子类继承上面的Animal父类,继承父类的属性和方法:classCat(Animal):pass#如果不想给类添加任何其他属性或方法,可以使用关键字passcat=Cat('cat','3')cat.info()#这是__init__oftheparentclassMethod#这是一只猫。今年3岁。当子类继承父类的__init__()方法时,会在创建对象时自动调用。可以在子类中重新创建一个__init__()方法,这样就可以继承父类的属性,给子类增加新的属性:classCat(Animal):def__init__(self,kind,age,name):self.kind=kindself.age=ageself.name=nameprint("Thisisthe__init__methodofthesubclass")definfo(self):#如果添加一个与父类同名的子类方法将会重写父类的方法print('这是一个'+self.kind,'今年'+self.age+'岁数','它的名字是'+self.name)cat=Cat('cat,'3','xixi')cat.info()#这是子类的__init__方法#这是一只猫,今年3岁,名字叫xixi如上图,在子类中添加了一个info()方法,也就是与父类中的方法同名的方法,会覆盖父类原有的方法。当您需要子类中的特殊或不同功能时,您可以这样做。多继承类DerivedClassName(Base1,Base2,Base3):...需要注意括号中基类(父类)的顺序,如果基类具有相同的方法名,并且在子类使用时不指定。Python从左到右查找,即当子类中没有找到该方法时,则从左到右查找基类中是否包含该方法。classParent(object):definfo(self):print('ThisisParent')defshow(self):print("showtime")classA(Parent):#InheritParentdefinfo(self):#自动重写父类的这个方法print('ThisisA')classB(Parent):#InheritParentdefinfo(self):print('ThisisB')classC(A,B):#InheritA,Bpass如下图。创建A类的实例对象后,调用info()方法,输出为ThisisA,因为A类的info方法本身会重写父类Parent中的info方法。而用实例对象调用show()方法调用的是父类Parent中的方法,因为A类中没有这个方法,所以会去父类中寻找。a=A()a.info()#Output:ThisisAa.show()#Output:showtimeclassB和classA相似:b=B()b.info()#Output:ThisisBa.show()#Output:showtime下面的代码中,因为C类继承了两个父类,所以在创建C的实例对象调用info()方法时,需要注意哪个info()方法是inmethodin父类。只要记住搜索顺序是从左到右,所以最终调用了父类A中的info()方法。c=C()c.info()#输出:ThisisAReference:https://www.9xkd.com/course/1039962250.html