Python 3.x 超级在这种情况下对我来说毫无意义

Python 3.x 超级在这种情况下对我来说毫无意义,python-3.x,Python 3.x,这对我来说毫无意义。我读过super()是如何工作的,也许我只是不太擅长掌握它。这似乎是一个非常多余的电话。为什么要对同一个对象调用两次init?在OOP中,super()对于多重继承非常有用。它允许您访问超类中的方法和属性,这些方法和属性将在子/子类中使用,这节省了大量的时间和精力 第二个init调用用于从基类/子类访问超类,在基类/子类中传递超类所需的参数;这样,在实例化基类/子类时,只传入其init所需的参数,而不传入超类的init。这方面的一个很好的例子是本文中的实现 此外,您可以只编写

这对我来说毫无意义。我读过super()是如何工作的,也许我只是不太擅长掌握它。这似乎是一个非常多余的电话。为什么要对同一个对象调用两次init?

在OOP中,
super()
对于多重继承非常有用。它允许您访问超类中的方法和属性,这些方法和属性将在子/子类中使用,这节省了大量的时间和精力

第二个
init
调用用于从基类/子类访问超类,在基类/子类中传递超类所需的参数;这样,在实例化基类/子类时,只传入
init
所需的参数,而不传入超类的
init
。这方面的一个很好的例子是本文中的实现


此外,您可以只编写
super()。\uuuu init\uuuu()
,而不显式引用基类。

如果您将此代码翻译成英语,它会说“一个
SimpleRoundedCorners
是一种
QWidget
,要初始化它,你需要做初始化
QWidget
所需的同样的事情,还需要调用它的
initUI
方法。“这里没有被调用两次的
\uuuu init\uuu
方法;有两个
\uuuu init\uuuu
方法,其中一个调用另一个。@kaya3一个不错@这也是一个很好的解释。我不是那样想的!非常感谢。在重新阅读super()定义以及您的解释和链接后,它完全有意义。
class SimpleRoundedCorners(QWidget):
    def __init__(self):
        super(SimpleRoundedCorners, self).__init__()
        self.initUI()