Quindi ... Sto lavorando per provare a passare dal Python di base a qualche programmazione della GUI, usando PyQt4. Sto guardando un paio di libri e tutorial diversi, e ognuno di loro sembra avere un modo leggermente diverso di dare il via alla definizione della classe.Diversi modi di usare __init__ per PyQt4
Un'esercitazione inizia le classi in questo modo:
class Example(QtGui.QDialog):
def __init__(self):
super(Example, self).__init__()
Un altro libro lo fa in questo modo:
class Example(QtGui.QDialog):
def __init__(self, parent=None):
super(Example, self).__init__(parent)
E ancora un altro lo fa in questo modo:
class Example(QtGui.QDialog):
def__init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
I sto ancora cercando di avvolgere la mia mente su classi e OOP e super()
e tutti ... ho ragione nel pensare che l'ultima riga del terzo esempio realizza più o meno la stessa cosa delle chiamate usando super()
nelle precedenti, chiamando esplicitamente la classe base direttamente? Per esempi relativamente semplici come questi, vale a dire l'ereditarietà singola, esiste un reale vantaggio o motivo per usare l'uno contro l'altro? Infine ... il secondo esempio passa a parent
come argomento a super()
mentre il primo non ... indovina/spiega perché/quando/dove sarebbe appropriato?
Sei un * veloce * risposta typer - strada davanti a me – Hubro
@Codemonkey 7 minuti dopo la domanda è stata posta, non * che * veloce. :) – Dougal