Python 學習筆記 ——金典類和新式類的區別

從python2.2開始就是出行了新式類,新式類是兼容經典類的功能的。

經典類的基類搜索機制是深度優先,在多繼承的時候就存在bug,而新式類的搜索機制是廣度優先,基類繼承自object類,多繼承的時候就不會像經典類那樣存在問題,Python3.x中已經都是新式類了,所有的類都是object的子類。

這裏寫圖片描述

經典類:

class A:
    def __init__(self):
        print 'This is A'
    def save(self):
        print 'save method from A'

class B(A):
    def __init__(self):
        print 'This is B'

class C(A):
    def __init__(self):
        print 'This is C'
    def save(self):
        print 'save method from C'

class D(B,C):
    def __init__(self):
        print 'This is D'

c = D()
c.save()

新式類:

class A(object):
    def __init__(self):
        print 'This is A'
    def save(self):
        print 'save method from A'

class B(A):
    def __init__(self):
        print 'This is B'

class C(A):
    def __init__(self):
        print 'This is C'
    def save(self):
        print 'save method from C'

class D(B,C):
    def __init__(self):
        print 'This is D'

c = D()
c.save()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章