1. 程式人生 > 程式設計 >python多繼承(鑽石繼承)問題和解決方法簡單示例

python多繼承(鑽石繼承)問題和解決方法簡單示例

本文例項講述了python多繼承(鑽石繼承)問題和解決方法。分享給大家供大家參考,具體如下:

在菱形多繼承中,如果用父類.__init__()來呼叫父類的初始化方法,最上層會執行兩次,所以遇到這種情況,python中用super.__init__()來解決這個問題。

# -*- coding:utf-8 -*-
#! python3
class Grand_father(object):
  def __init__(self):
    print('爺爺')
class Father_left(Grand_father):
  def __init__(self):
    super(Father_left,self).__init__()
    # Grand_father.__init__(self)
    print('左邊爸爸')
class Father_right(Grand_father):
  def __init__(self):
    super(Father_right,self).__init__()
    # Grand_father.__init__(self)
    print('右邊爸爸')
class Me(Father_right,Father_left):
  def __init__(self):
    super(Me,self).__init__()
    # Father_left.__init__(self)
    # Father_right.__init__(self)
    print('我')
def main():
  me = Me()
if __name__ == '__main__':
  main()

執行結果:

爺爺
左邊爸爸
右邊爸爸

如果需要呼叫左邊爸爸,那就執行super(右邊爸爸類).

更多關於Python相關內容感興趣的讀者可檢視本站專題:《Python面向物件程式設計入門與進階教程》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python字串操作技巧彙總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》

希望本文所述對大家Python程式設計有所幫助。