自己动手试一试吧!
#经典类和新式类的继承顺序 class A: def __init__(self): print('A') class B(A): # def __init__(self): # print('B') pass class C(A): # def __init__(self): # print('C') pass class D(B,C): #这种情况,是先走本身的构造函数,然后根据顺序走其他的:广度优先,横向查找 #为什么这样说,因为在B,C时没有在向B、C的父类查询,而是作为最后查询 #和上边的相反的查询就是深度优先,记住Python3都是广度优先, #在python2经典类是按深度优先继承的,新式类是按广度优先继承的 #python3都是按照广度优先继承的,class A: 经典类class A(object):新式类 # def __init__(self): # print('D') pass # 如果它们都有构造函数,那么构造函数会怎么走 # 测试一下吧 obj = D()
Python新式类与经典类的区别
最新推荐文章于 2021-12-19 16:14:25 发布