python基础===新式类与经典类
Posted botoo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础===新式类与经典类相关的知识,希望对你有一定的参考价值。
首先:
Python 2.x中默认都是经典类,只有显式继承了object才是新式类
Python 3.x中默认都是新式类,不必显式的继承object
这两种类的区别:
新式类重定义的方法更多,当然这不是重点,重点是两种类在多继承状态下查找“方法”的规则不同。
经典类: 深度查找
显示类:广度查找
其次:
------新式类对象可以直接通过__class__属性获取自身类型:type
------继承搜索的顺序发生了改变,经典类多继承属性搜索顺序: 先深入继承树左侧,再返回,开始找右侧;新式类多继承属性搜索顺序: 先水平搜索,然后再向上移动
------新式类增加了__slots__内置属性, 可以把实例属性的种类锁定到__slots__规定的范围之中
------新式类增加了__getattribute__方法
以上是关于python基础===新式类与经典类的主要内容,如果未能解决你的问题,请参考以下文章