抽象类本身不能被实例化,也不应该实例化,它的作用就是定义标准,并不用具体实现
import abc
class Parent(metaclass=abc.ABCMeta):
@abc.bastractmethod
def whatever(self):
pass

经典类多态继承按顺序纵向查找,不重复查找,深度优先

新式类广度优先,按照.mro()的顺序

super().__init__(name,age,sex)#调用父类的__init__
#super(Teacher,self).__init__(name,age,sex)在python2中

封装数据

封装功能

__开头的变形只在类的定义阶段或对象定义阶段发生一次,好处是限制变量在函数内部使用

在类的外部,无法直接使用变形的属性,但是在类的内部可以直接使用

@property#触发函数执行,使函数作为数据访问
配合@xxx.setter赋值
@xxx.deleter删除