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

7
задан memilanuk 23 July 2012 в 03:44
поделиться