码迷,mamicode.com
首页 > 编程语言 > 详细

python基础===新式类与经典类

时间:2018-04-19 18:21:59      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:这不   strong   开始   python 2   广度   getattr   type   查找   pytho   

首先:

Python 2.x中默认都是经典类,只有显式继承了object才是新式类

Python 3.x中默认都是新式类,不必显式的继承object

 

这两种类的区别:

新式类重定义的方法更多,当然这不是重点,重点是两种类在多继承状态下查找“方法”的规则不同。

经典类: 深度查找

显示类:广度查找

 

其次:

------新式类对象可以直接通过__class__属性获取自身类型:type

------继承搜索的顺序发生了改变,经典类多继承属性搜索顺序: 先深入继承树左侧,再返回,开始找右侧;新式类多继承属性搜索顺序: 先水平搜索,然后再向上移动

------新式类增加了__slots__内置属性, 可以把实例属性的种类锁定到__slots__规定的范围之中

------新式类增加了__getattribute__方法

python基础===新式类与经典类

标签:这不   strong   开始   python 2   广度   getattr   type   查找   pytho   

原文地址:https://www.cnblogs.com/botoo/p/8884775.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!