有什么区别:
class Child(SomeBaseClass):
def __init__(self):
super(Child, self).__init__()
和:
class Child(SomeBaseClass):
def __init__(self):
SomeBaseClass.__init__(self)
我已经看到 super
在只有单一继承的类中被大量使用。我明白你为什么要在多重继承中使用它,但不清楚在这种情况下使用它有什么好处。
原文由 user25785 发布,翻译遵循 CC BY-SA 4.0 许可协议
super()
在单继承中的好处是最小的——主要是,您不必将基类的名称硬编码到使用其父方法的每个方法中。但是,如果没有
super()
几乎不可能使用多重继承。这包括常见的习语,如混合、接口、抽象类等。这扩展到稍后扩展你的代码。如果以后有人想写一个扩展的类Child
和一个 mixin,他们的代码将无法正常工作。