1、定义
Python 2.x中默认都是经典类,只有显式继承了object才是新式类(Python2.2出现新式类)
Python 3.x中默认都是新式类,不必显式的继承object
2、属性和方法
新式类可以直接通过class属性获取自身类型
新式类中增加了slots属性,可以对示例扩展的属性加以限制
新式类中增加了getattribute方法
3、多继承MRO(方法解释顺序)
经典类多继承属性搜索顺序: 先深入继承树左侧,再返回,开始找右侧(深度优先算法);
新式类多继承属性搜索顺序: 先水平搜索,然后再向上移动(广度优先算法)
以下是图解实例:
python中的经典类和新式类
python中的经典类和新式类
网友评论