小编典典

“超级”在 Python 中做了什么?\- super().__init__() 和显式超类 __init__() 之间的区别

all

有什么区别:

class Child(SomeBaseClass):
    def __init__(self):
        super(Child, self).__init__()

和:

class Child(SomeBaseClass):
    def __init__(self):
        SomeBaseClass.__init__(self)

我已经看到super在只有单一继承的类中被大量使用。我可以理解您为什么要在多重继承中使用它,但不清楚在这种情况下使用它有什么优势。


阅读 134

收藏
2022-03-03

共1个答案

小编典典

单继承的好处super()是微乎其微的——大多数情况下,您不必将基类的名称硬编码到使用其父方法的每个方法中。

但是,几乎不可能在没有super(). 这包括常见的习惯用法,如
mixins、接口、抽象类等。这会扩展到以后扩展您的代码。如果后来有人想编写一个扩展类Child和一个 mixin,他们的代码将无法正常工作。

2022-03-03