Różne sposoby używania __init__ dla PyQt4

Więc ... Pracuję nad próbą przejścia od podstawowego Pythona do jakiegoś programowania GUI, używając PyQt4. Patrzę na kilka różnych książek i samouczków, a każdy z nich wydaje się mieć nieco inny sposób na rozpoczęcie definicji klasy.

Jeden tutorial zaczyna się od takich klas:

class Example(QtGui.QDialog):
    def __init__(self):
        super(Example, self).__init__()

Inna książka to lubi:

class Example(QtGui.QDialog):
    def __init__(self, parent=None):
        super(Example, self).__init__(parent)

A jeszcze inny robi to w ten sposób:

class Example(QtGui.QDialog):
    def__init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

Nadal próbuję zawinąć mój umysł wokół klas i OOP isuper() i wszystko ... czy mam rację, myśląc, że ostatni wiersz trzeciego przykładu wykonuje mniej więcej to samo, co połączeniasuper() w poprzednich, jawnie wywołując klasę bazową bezpośrednio? Czy dla względnie prostych przykładów, takich jak pojedyncze dziedziczenie, istnieje jakaś rzeczywista korzyść lub powód, aby użyć jednego sposobu w stosunku do drugiego? Wreszcie ... drugi przykład mijaparent jako argument dosuper() podczas gdy pierwszy nie ... zgaduje / wyjaśnia, dlaczego / kiedy / gdzie byłoby to właściwe?

questionAnswers(1)

yourAnswerToTheQuestion