-
新式类:继承于object的类都是新式类。
class B(object):
pass
#主要运用于python3
-
经典类:不是继承object的类都是经典类
class B(object):
pass
#python2
-
在多继承中,新式类采用广度优先搜索,而经典类是采用深度优先搜索。
经典类MRO为DFS(深度优先搜索: 先深入继承树左侧,再返回,开始找侧)
新式类MRO为BFS(广度优先搜索: 先水平搜索,然后再向上移动)
新式类的特点:
新式类更符合OOP编程思想,统一了python中的类型机制。
新式类对象可以直接通过class属性获取自身类型:type
新式类增加了slots内置属性, 可以把实例属性的种类锁定到slots规定的范围之中
新式类增加了getattribute方法