当所有要创建的类有共同的属性,可以提取出来创建一个基类(父类),其他类继承父类即可拥有这些属性,减少代码冗余。
继承父类属性时会使用到super关键字,可以的格式有 : super(),super(type,object)相当于下例中super(Student,self),底层会进行isinstance判断,看self是否是Student类型的,是否是Student生出来的,此时便用到了上节所说的自定义类型。 其实不加参数和带两个参数作用一致。
class Parent:
def __init__(self,name,age,sex):
self.name=name
self.age=age
self.__sex=sex
class Student(Parent):
def __init__(self,clazz,name,age,sex):
self.clazz=clazz #自己的初始化参数
#要继承父类的属性,用到super关键字,一个父类对象
super().__init__(name,age,sex)#传这些参数进父类
def __str__(self):
return self.name+str(self.age)+self._Parent__sex+str(self.clazz)
s=Student(3,'小黄',18,'男')
print(s)
当要使用父类的方法,但是有自己的东西需要修改,可以在子类中使用相同方法名来重写父类方法,而父类中的方法可以通过super().方法()来调用,然后在子类方法中重写。