python 带参数的多重继承
生活随笔
收集整理的這篇文章主要介紹了
python 带参数的多重继承
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 不帶參數的多重繼承
class A(object):def show_x(self):print('A')class B(object):def show_y(self):print('B') class C(object):def show_z(self):print('C')class D(A, B, C):pass# 測試 if __name__ == '__main__':d = D()d.show_x() # Ad.show_y() # Bd.show_z() # C2. 帶參數的多重繼承
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' class A(object):def __init__(self, x=0):self._x = xdef show_x(self):print(self._x)def show_name(self):print('A')class B(object):def __init__(self, y=0):self._y = ydef show_y(self):print(self._y)def show_name(self):print('B') class C(object):def __init__(self, z=0):self._z = zdef show_z(self):print(self._z)def show_name(self):print('C')# 注意下面兩類D、E,都是繼承A、B、C,且A類的優先級最高。但是三條__init__語句的順序是相反的 class D(A, B, C):def __init__(self, x=0, y=0, z=0):C.__init__(self, z) # init CB.__init__(self, y) # init BA.__init__(self, x) # init A (A最優先)class E(A, B, C):def __init__(self, x=0, y=0, z=0):super(E, self).__init__(x) # init A (A最優先) # 此句可簡寫成:super().__init__(x)super(A, self).__init__(y) # init Bsuper(B, self).__init__(z) # init C# 測試 if __name__ == '__main__':d = D(1,2,3)d.show_x() # 1d.show_y() # 2d.show_z() # 3d.show_name() # Ae = E(1,2,3)e.show_x() # 1e.show_y() # 2e.show_z() # 3e.show_name() # A總結
以上是生活随笔為你收集整理的python 带参数的多重继承的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python支持的几种并发方式进行简单的
- 下一篇: websocket python爬虫_p