继承object对象对python多继承的影响
2016-11-29 14:14
316 查看
转载自:https://my.oschina.net/cuilili/blog/501427
0x01 定义
今天看到个有趣的文章里面谈到python的经典类和典型类,遂验证并总结。经典类 不继承自object,多继承时深度优先搜索
class C1: pass
新式类 直接或间接继承自object类,多继承时广度优先搜索
class C2(object): pass
0x02 验证
class A(object): def speek(self): print("AAAAAAAAAAA") class B(A): pass class C(A): def speek(self): print('CCCCCCC') class D(B, C): pass d = D() d.speek()
python2.7下,当A是新式类时,输出:CCCCCC; 当A是经典类时输出:AAAAAA
python3.3下,无论A是否继承自object,输出都是:CCCCCC
A / \ / \ B C \ / \ / D
深度优先搜索时,搜索顺序 D->B->A 广度优先搜索时顺序: D->B->C->A
可见py2会根据新式类或者经典类采用不同的搜索方法,但是py3则不理会这一点全部采用广度优先搜索。
相关文章推荐
- 继承object对象对python多继承的影响
- python object 对象定义之精
- Python中使用pickle对内建类型(built in types)进行对象序列化(object serialization and deseirialzation)
- Python创建类的时候,是否继承object问题
- 继承自DynamicObject的对象的Xml序列化
- python 零散记录(七)(下) 新式类 旧式类 多继承 mro 类属性 对象属性
- Python源码剖析[12] —— 字典对象PyDictObject(1)
- Python 通过继承实现标准对象的子类
- Python 类的定义、继承及使用对象 [转]
- Object的那点事:(继承自NSobject类的对象到底用不用分配内存控件)
- javascript中的Function对象和Object对象的区别以及对象继承
- javascript继承学习系列之三:对象伪装(Object Masquerading)
- Learn Python The Hard Way学习(42) - 继承,包含,对象和类
- Python 类的定义、继承及使用对象
- python面向对象开发(继承)
- 继承自DynamicObject的对象的Xml序列化
- Python 类的定义、继承及使用对象 [转]
- 看python官方说明学python-class-object-类、对象-之区域和名空间
- [置顶] 从零开始学C++之虚继承和虚函数对C++对象内存模型造成的影响(类/对象的大小)
- PYthon类的定义、继承以及使用对象(例)