学习总结(二十四)
1.类属性与对象属性
类:class 类名
对象:对象名 object
1)__init__(): 程序每次运行时都会调用该函数,把__init__()内的变量实例化,实例化时__init__()函数内如果有形参,必须要赋值成为实参不然回报错
2)self : 该变量在运行时指向本类,有self的函数都回被本类绑定,被类绑定后方便数据处理,提高变量的服用性,类在传入数据后被绑定的方法中self自动获取被传入的数据.绑定后就属于类中的方法,外部不可以直接调用,要通过类来调用
3) n1= stur().self() n2=stur().self()
n1和n2 这两个是新的对象,但是其中的self()方法都是指向一个方法
4) @classmeth: 在方法上添加这个标签,就是对象绑定的方法,这是对象的绑定方式之一
@staticmeth: 这个标签把函数变成静态函数,添加这个标签后,就是会使函数拖绑,使函数变成公共函数
5)属性查找的顺序
对象自己---->所在类的父类---->object(基类)
6)在python3中object是所有类的基类(根类)
其中pyhton中所有用到的任何数据都是对象
2.类的继承
1) 类的继承就是子类继承父类中的方法,常量
python的继承方式
class Teacher(父类)
对象的查找顺序就是对类的继承一种描述,只有继承了才能查找到上一个
2) 派生和覆盖
子类拥有与父类不同的内容 就称之为派生类
子类拥有父类相同的函数(方法),但是内容不同就是覆盖(重写)
3)super():使用该方法会指向父类中相同的方法和常量,super在访问父类属性时 是按照mro列表一层层往上找的
mro显示类访问的顺序
4)
经典类:不是object的子类 仅在py2中出现深度优先
新式类:object的子类 py3中都是新式类
先深度 直到有一个公共父类时,查找其他路线(基于C3算法)
3.类的抽象
抽象就是将一系列类中相同的特征和相同的行为抽取,形成一个新的类,不能直接实例化 通过abc模块来实现