2012-11-24 49 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__()