python3 筆記20.類的呼叫和多重繼承(多重繼承MRO方法解析順序)

藥藥君發表於2018-10-19

python3 類的多重繼承和 python2 的經典類相差比較遠,需要使用到MRO方法解析順序。

要是順序不對則無法正常繼承。這裡先簡單瞭解。到以後有機會使用再深度學習

# 類的呼叫也是遵循模組呼叫的兩種方式多重繼承:多個類間的互相繼承
# 多重繼承的寫法: class 類名(父類名,子類名)
# 規則:相同方法名的方法以及框架都繼承父類,若不同名的方法則可以完全同時繼承
# coding:utf-8
from leijichenghechongxie import *
class sun(son,father): #python3.x是新式類繼承的方法,MRO方法解析順序(Method Resolution Order)比較複雜。需要使用C3演算法
    #這裡和python2.x不一樣,不能直接先繼承father方法。
    def play(self):
        print("我%s要去玩了" % self.name)

    def drink(self):  # 重寫了drink的方法
        print("我%s還不會喝奶" % self.name)
sun1 = sun('Jacksun', 0,"male")  # 傳參時需要注意,優先繼承了son,即對應傳入兩個引數即可
sun1.work()  #繼承到了father類的方法
sun1.drink()
sun1.play()

 

相關文章