我正在尝试从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的目的是什么。
答案 0 :(得分:2)
看看the documentation of super()
:
返回一个代理对象,该方法将方法调用委托给父类或兄弟类类型。这对于访问已在类中重写的继承方法很有用。搜索顺序与getattr()使用的搜索顺序相同,只是跳过了类型本身。
基本上这行代码:
super(Form,self).__init__(parent)
在当前类(__init__()
)继承的类中找到“最接近”的set Form
方法,并使用此方法启动self
对象并将parent
作为第一个论点。