2012-11-24 73 views
2

我有一個超類和一個子類。超類包含一個持有一些屬性的構造函數,子類也應該有一個構造函數來初始化一些屬性。然而問題是,當我在我的子類中創建一個__init__方法時,它會覆蓋超類的構造函數。子類__init__重寫超類的

如何解決這個問題,以便子類的構造函數不重寫超類的構造函數方法?

非常感謝!

回答

3

使子類調用超類__init__方法。您可以明確地執行此操作,也可以使用super函數。對於單一繼承等簡單情況,兩種方法都是等價的。

class Subclass(Superclass): 
    def __init__(self): 
     Superclass.__init__(self) 

class Subclass(Superclass): 
    def __init__(self): 
     super(Subclass, self).__init__()