python類繼承時構造函數的執行問題

如果子類定義了自己的__init__構造方法函數,當子類的實例對象被創建時,子類只會執行自己的__init__方法函數,如果子類未定義自己的構造方法函數,會沿着搜索樹找到父類的構造方法函數去執行父類裏的構造方法函數。
如子類定義了自己的構造方法函數,如果子類的構造方法函數內沒有主動調用父類的構造方法函數,那父類的實例變量在子類不會在剛剛創建子類實例對象時出現了。
class aa:
        def __init__(self):
                self.x = 10
                self.y = 12
        def hello(self, x):
                return x + 1
class bb(aa):
        def __init__(self):               
                aa.__init__(self) #如果註銷此行,下邊打印b.x和b.y將報錯,未定義
                                        #通過類名字調用父類的構造方法函數
                self.z = 14
        
        
a = aa()
print a.x, a.y
b = bb()
print b.x, b.y

<script src="https://code.csdn.net/snippets/310873.js"></script>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章