1、回顾面向对象
面向对象:面向对象是一种编程思想,是一种对面向过程编程方式的补充和完善的解决思路,形成了一种新的编程思想,通过类型和对象之间的相互协作完整整体功能的模式!
2、面向对象的特征
封装、继承、多态
-
封装特征
1、封装数据
2、封装方法
3、封装属性:属性私有化,提供get/set、方法,添加限制条件 -
继承特征:
1、子类、父类:子类继承父类,实现大码的复用和功能的扩展
2、子类访问父类的方法和属性:父类类名.方法、super()关键字
3、多继承机制:体现的是,某对象可以是多种类型;父类中出现了重名属性、方法的情况【广度优先搜索、深度优先搜索】
python3[新式类]-深度搜索
python2[新式类(深度搜索)|经典类(广度搜索)]
4、继承信息的查询:
__base__:查询当前类继承的直接父类
__bases__:查询当前继承的所有父类
__class__:查看当前类的类型数据
__subclasses__:查看当前类型的所有子类
-
多态特征:
1、角色多态:多继承体现的一个对象可以同时属于多个类型[多继承继承的多个类型]
在代码运行过程中,根据不同的使用场景,当前对象调用继承的不同类型的方法执行具体行为操作的过程!
2、行为多态:方法重写~子类重写父类中已经存在的方法,在代码运行过程中,根据子类是否重写了父类的方法,动态的确定执行父类/子类中的方法!
3、类型和对象
类型都有自己的特征
1、面向对象:一切皆对象->python中所有的东西都是由一个超级原始对象衍生出来的!
自己定义的类型--都会继承原始的这个对象~~继承该对象的属性和行为!
自定义类型,继承的[双划线开头结尾的属性和函数]:魔法属性、魔法方法
- 魔法属性/方法:已经具备了一定功能的固有的属性和方法!
-
常见的魔法属性和方法
(1)、 输出
(1)__str__():输出当前对象,在内存中的地址 十六进制表示的字符串
(2)__repr__:用于在**交互模式**下,直接操作变量时~获取变量数据的定义!
(2)、比较
__gt__():grant than大于
__lt__(): less than小于
__ge__(): grant or equals大于或者等于
__le__(): less or equals小于或者等于
__ne__(): not equals 不等于
__eq__(): equals 等于
(3)运算
__add__():加法
__sub__():减法
__mul__():乘法
__truediv__():除法
__floordiv__():整除