經典類和新式類的寫法:
<pre>
class A: #經典類(舊式類)寫法
..................
class A(object): #新式類寫法
..................
</pre>
廣度優(yōu)先
廣度優(yōu)先.jpeg
深度優(yōu)先
深度優(yōu)先.jpeg
在Python 3.x中:
<pre>class A(object):
def init(self):
print('--------A')
class B(A):
def init(self):
print('-------B')
class C(A):
def init(self):
print('--------C')
class D(B,C):
pass
# def init(self):
# print('------D')</pre>
經典類和新式類按統(tǒng)一的廣度優(yōu)先的順序執(zhí)行,所以D的繼承會以廣度優(yōu)先的順序來執(zhí)行查找可用的init構造函數(shù),即:D-B-C-A
在Python 2.x中:
經典類寫法按深度優(yōu)先的順序執(zhí)行,即D的繼承會以深度優(yōu)先的順序來執(zhí)行查找可用的init構造函數(shù),即:D-B-A-C
新式類寫法按廣度優(yōu)先的順序執(zhí)行,即D的繼承會以深度優(yōu)先的順序來執(zhí)行查找可用的init構造函數(shù),即:D-B-C-A