Also ... Ich arbeite an dem Versuch, von Basic Python zu einigen GUI-Programmierung zu verschieben, mit PyQt4. Ich schaue mir ein paar verschiedene Bücher und Tutorials an, und beide scheinen eine etwas andere Art zu haben, die Klassendefinition zu beginnen.Verschiedene Arten der Verwendung von __init__ für PyQt4
Ein Tutorial beginnt die Klassen wie folgt:
class Example(QtGui.QDialog):
def __init__(self):
super(Example, self).__init__()
Ein weiteres Buch tut es wie folgt aus:
class Example(QtGui.QDialog):
def __init__(self, parent=None):
super(Example, self).__init__(parent)
Und noch eine andere tut es so aus:
class Example(QtGui.QDialog):
def__init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
I Ich versuche immer noch, meine Gedanken um Klassen und OOP und super()
und alle ... Ich bin richtig zu denken dass die letzte Zeile des dritten Beispiels mehr oder weniger die gleiche Funktion erfüllt wie die Aufrufe mit super()
in den vorherigen, indem die Basisklasse explizit direkt aufgerufen wird? Für relativ einfache Beispiele wie diese, d. H. Einzelvererbung, gibt es irgendeinen wirklichen Vorteil oder einen Grund, einen Weg gegenüber dem anderen zu verwenden? Endlich ... das zweite Beispiel übergibt parent
als Argument an super()
während der erste nicht ... irgendwelche Vermutungen/Erklärungen, warum/wann/wo das wäre angemessen?
Sie sind eine * schnelle * Antwort Typer - weit vor mir – Hubro
@ Codemonkey 7 Minuten nach der Frage wurde gefragt, nicht * das * schnell. :) – Dougal