Diferentes formas de usar __init__ para PyQt4
Entonces ... estoy trabajando para intentar pasar de Python básico a alguna programación GUI, usando PyQt4. Estoy viendo un par de libros y tutoriales diferentes, y cada uno parece tener una forma ligeramente diferente de comenzar la definición de clase.
Un tutorial comienza las clases así:
class Example(QtGui.QDialog):
def __init__(self):
super(Example, self).__init__()
Otro libro lo hace así:
class Example(QtGui.QDialog):
def __init__(self, parent=None):
super(Example, self).__init__(parent)
Y otro más lo hace de esta manera:
class Example(QtGui.QDialog):
def__init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
Todavía estoy tratando de envolver mi mente en torno a las clases y OOP ysuper()
y todo ... tengo razón al pensar que la última línea del tercer ejemplo logra más o menos lo mismo que las llamadas usandosuper()
en los anteriores, llamando explícitamente a la clase base directamente? Para ejemplos relativamente simples como estos, es decir, herencia única, ¿hay algún beneficio real o razón para usar una forma en lugar de la otra? Finalmente ... pasa el segundo ejemplo.parent
como un argumento parasuper()
mientras que el primero no ... ¿alguna conjetura / explicación de por qué / cuándo / dónde sería apropiado?