面向对象
1.继承
1.1继承的概念
继承描述的是一种类间关系,一个类A从另一个类B获取成员信息,称类A继承自类B。
提供成员信息的类称父类(基类),获取成员信息的类称子类(派生类)。
1.2继承的作用
子类可以使用父类的成员(成员变量,成员方法)
1.3继承语法格式
class 类名(父类名):
pass
1.4获取继承关系图谱
使用Python内置属性__mro__可以查看继承关系
语法格式:类名.mro
说明:mro即Method Resolution Order方法解析顺序
1.5.注意事项
子类可以添加父类没有的成员
父类私有成员不可被继承
2.重写
2.1重写的概念
重写指在子类中定义与父类相同名称的成员方法。
2.2重写的作用
子类对父类的成员方法进行重写后,使用子类对象调用该方法时,将执行子类中重写后的方法
2.3在子类中访问父类被重写的方法
格式一:
父类名.方法名(对象)
格式二:
super(本类名,对象).方法名()
格式三:(推荐)
super().方法名()
3.多继承
3.1多继承的概念
一个类同时继承多个类,称为多继承
3.2定义多继承语法格式
class 类名(父类名1,父类名2…):
pass
3.3 多继承关系中访问父类成员冲突
多继承关系中,当多个父类具有同名的成员,子类调时该成员时先调用继承关系中的第一个声明的类的成员。
4.多态
4.1多态的概念
一个对象具有多种形态,在不同的使用环境中以不同的形态展示其功能,称该对象具有多态特征。
4.2鸭子类型
鸭子类型是一种特殊的调用现象,当对象在语法层面能够满足调用关系,但对象并不具有对应的对象形态,称该对象此时具备鸭子类型
鸭子类型是一种特殊的多态表现形式
4.3注意事项
多态通常发生在继承关系的基础之上。
5.引用类型参数
5.1引用类型参数的概念
调用函数或方法时,传入的参数如果是对象类型的值,称此类参数为引用类型参数
5.2引用类型参数的特征
引用类型对象作为参数进入函数或方法中,如果对其对象属性发生改变,则原始对象也发生改变