Различные способы использования __init__ для PyQt4

Итак ... Я работаю над попыткой перейти от базового Python к программированию с графическим интерфейсом, используя 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() в то время как первый не ... никаких догадок / объяснений, почему / когда / где это было бы уместно?

Ответы на вопрос(1)

Ваш ответ на вопрос