真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python中的新式類和經(jīng)典類的區(qū)別

python中的類分為經(jīng)典類(舊式類)和新式類。python的新式類是2.2版本為了統(tǒng)一類和實(shí)例引進(jìn)來的。

創(chuàng)新互聯(lián)公司是一家專業(yè)提供廣饒企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站制作、html5、小程序制作等業(yè)務(wù)。10年已為廣饒眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。

在Python2.x中默認(rèn)都是經(jīng)典類,只有顯式繼承了object的才是新式類。
如下所示:

# 新式類,顯示繼承object
class A(object):
    pass
# 經(jīng)典類
class A():
    pass
# 經(jīng)典類
class A:
    pass

在python3.x中取消了經(jīng)典類,默認(rèn)都是新式類,并且新式類不需要顯式的繼承object對象。如下所示,這三種寫法都可以,并無區(qū)別:

# 第一種
class A(object):
    pass
# 第二種
class A():
    pass
# 第三種
class A:
    pass

新式類和經(jīng)典類的區(qū)別

  • 新式類都從object繼承,經(jīng)典類不需要。
  • 經(jīng)典類的 MRO(method resolution order 基類搜索順序)算法是采用深度優(yōu)先搜索,而新式類的 MRO算法采用C3算法廣度優(yōu)先搜索。
  • 新式類相同父類只執(zhí)行一次構(gòu)造函數(shù),經(jīng)典類重復(fù)執(zhí)行多次。

新式類和經(jīng)典類最大的不同在于繼承搜索的順序發(fā)生了改變。
經(jīng)典類采用深度優(yōu)先搜索,也就是先深入繼承樹左側(cè)查找,然后再返回,開始查找右側(cè):

class A:
    def show(self):
        print("From A")
class B(A):
    def show(self):
        print("From B")
class C(A):
    def show(self):
        print("From C")
class D(B, C):
    pass
d = D()
d.show()
# From B

新式類采用廣度優(yōu)先搜索,先在水平方向查找,再向上查找:

class A(object):
    def show(self):
        print("From A")
class B(A):
    def show(self):
        print("From B")
class C(A):
    def show(self):
        print("From C")
class D(B, C):
    pass
d = D()
d.show()
# From C

參考: https://www.9xkd.com/


當(dāng)前題目:python中的新式類和經(jīng)典類的區(qū)別
分享鏈接:http://weahome.cn/article/gjcgis.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部