python多繼承(鑽石繼承)問題和解決方法簡單示例
阿新 • • 發佈:2020-01-09
本文例項講述了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程式設計有所幫助。