【问题标题】:subclass __init__ overrides superclass's [duplicate]子类 __init__ 覆盖超类的 [重复]
【发布时间】:2012-11-24 21:52:58
【问题描述】:

我有一个超类和一个子类。超类包含一个包含一些属性的构造函数,子类也应该有一个初始化一些属性的构造函数。然而,问题是,当我在子类中创建 __init__ 方法时,它会覆盖超类的构造函数。

如何解决这个问题,使子类的构造函数不会覆盖超类的构造函数方法?

非常感谢!

【问题讨论】:

    标签: python


    【解决方案1】:

    让子类调用超类__init__方法。您可以显式执行此操作,也可以使用 super 函数。对于像单继承这样简单的情况,这两种方法是等价的。

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

    【讨论】:

      猜你喜欢
      • 2021-01-17
      • 2011-08-07
      • 1970-01-01
      • 2016-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 2011-11-14
      相关资源
      最近更新 更多