1. python2和python3中定义类的形式不同
python3中只有只有新式类
class A(object): # python3中定义新式类
class A: # python3中定义新式类(省略object)
python2中有经典类和新式类区别:
class A(object): # python2中定义新式类
class A: # python2中定义经典类
新式类和经典类只要区别在继承搜索顺序上,
-- 经典类,搜索深度优先,先深入继承树左侧查找,然后返回,开始右侧查找
-- 新式类,搜索广度优先,先水平查找,再向上查找
python2-新式类:super(类, self)必须显示的申明,python3-默认自己时可省略而使用super()
python2-新式类例子
class A(object):
def __init__(self):
print("A")
class B(A):
def __init__(self):
print("B")
super(B,self).__init__()
class C(A):
def __init__(self):
print("C")
super(C,self).__init__()
class D(B, C):
def __init__(self):
print("D")
super(D,self).__init__()
d = D