python中的经典类和新式类

1、定义
Python 2.x中默认都是经典类,只有显式继承了object才是新式类(Python2.2出现新式类)
Python 3.x中默认都是新式类,不必显式的继承object

2、属性和方法
新式类可以直接通过class属性获取自身类型
新式类中增加了slots属性,可以对示例扩展的属性加以限制
新式类中增加了getattribute方法

3、多继承MRO(方法解释顺序)
经典类多继承属性搜索顺序: 先深入继承树左侧,再返回,开始找右侧(深度优先算法);
新式类多继承属性搜索顺序: 先水平搜索,然后再向上移动(广度优先算法)
以下是图解实例:


python中的经典类和新式类_第1张图片
图片发自App

python中的经典类和新式类_第2张图片
图片发自App

你可能感兴趣的:(python中的经典类和新式类)