有什么区别:
class Child(SomeBaseClass): def __init__(self): super(Child, self).__init__()
和:
class Child(SomeBaseClass): def __init__(self): SomeBaseClass.__init__(self)
我已经看到super在只有单一继承的类中被大量使用。我可以理解您为什么要在多重继承中使用它,但不清楚在这种情况下使用它有什么优势。
super
单继承的好处super()是微乎其微的——大多数情况下,您不必将基类的名称硬编码到使用其父方法的每个方法中。
super()
但是,几乎不可能在没有super(). 这包括常见的习惯用法,如 mixins、接口、抽象类等。这会扩展到以后扩展您的代码。如果后来有人想编写一个扩展类Child和一个 mixin,他们的代码将无法正常工作。
Child