Python基础之面向对象:3、继承与派生( 二 )

? 继承object或者其之类的类

? 在python3中,只有新式类,所有类都默认继承object
? 在python2中,区分经典类和新式类
在以后我们定义类的时候,如果没有明确的父类,可以在类的括号内填入object,这样话能够提高我们代码的兼容性
二、派生1、派生的概念? 派生是指,子类继承父类,派生出自己的属性与方法,并且重用父类的属性与方法
2、派生的方法1.直接引用父类的__ init __为其传参,并添加子类属性
?缺点:代码重复率太高,浪费资源,时间
class People:school = '清华大学'def __init__(self, name, sex, age):self.name = nameself.sex = sexself.age = ageclass Teacher(People):def __init__(self, name, sex, age, title): #派生self.name = nameself.sex = sexself.age = ageself.title = titledef teach(self):print(f'{self.name}是老师')obj = Teacher('lili','female', 28, '高级教师')#只会找自己类中的__init__print(obj.name, obj.sex, obj.age, obj.title)#lili female 28 高级教师2.通过super()来只想父类的属性
? super()是一个特殊的类,在子类__ init __内调用super得到一个对象,该对象指向父类的名称空间
class Teacher(People):def __init__(self, name, sex, age, title):super().__init__(name, age, sex)#调用的是绑定方法,自动传入selfself.title = titledef teach(self):print(f'{self.name}是老师')obj = Teacher('lili','female', 28, '高级教师')
注意:在python2中super 的使用需要完整地写成super(自己的类名,self),而在python3中可以简写为super() 。

经验总结扩展阅读