无法理解PyQt中的一行代码

时间:2012-05-19 20:46:24

标签: python pyqt pyqt4

我正在尝试从PyQt自己学习rapid gui programming with python and qt,并且无法理解本书其中一个示例中提到的下面一行代码的meaning/requirement

class Form(QDialog):

        def __init__(self,parent=None):
                super(Form,self).__init__(parent) # Trouble understanding here

所以,我的问题是super(Form,self).__init__(parent)的需要是什么,或者它试图填满in this code的目的是什么。

1 个答案:

答案 0 :(得分:2)

看看the documentation of super()

  

返回一个代理对象,该方法将方法调用委托给父类或兄弟类类型。这对于访问已在类中重写的继承方法很有用。搜索顺序与getattr()使用的搜索顺序相同,只是跳过了类型本身。

基本上这行代码:

super(Form,self).__init__(parent)

在当前类(__init__())继承的类中找到“最接近”的set Form方法,并使用此方法启动self对象并将parent作为第一个论点。