所以...我正在努力从基础的Python转向一些GUI编程,使用PyQt4。我正在查看几本不同的书籍和教程,它们似乎都有稍微不同的方式来启动类定义。
其中一个教程是这样开始定义类的:
class Example(QtGui.QDialog):
def __init__(self):
super(Example, self).__init__()
另一本书是这样做的:
class Example(QtGui.QDialog):
def __init__(self, parent=None):
super(Example, self).__init__(parent)
还有一种方法是这样的:
class Example(QtGui.QDialog):
def__init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
我仍在努力理解类和面向对象编程以及super()
等内容... 我是否正确地认为第三个示例的最后一行通过直接调用基类显式实现的方式,与前面使用super()
进行调用的效果差不多?对于这些相对简单的示例,即单继承,使用一种方法而不是另一种方法是否有真正的好处或原因?最后...第二个示例将parent
作为参数传递给super()
,而第一个示例没有... 你有何猜测/解释何时/何地使用该方法会更合适?