class A(object):
def __init__(self):
print('A.__init__()')
class D(A):
def __init__(self):
super(A, self).__init__()
print('D.__init__()')
D()
Die Ausgabe lautet:Warum super (A, self) .__ init __() ruft nicht A's __init __() auf?
D.__init__()
Dies ist für mich unerwartet. Nach meinem Verständnis, sollte A
's ctor aufgerufen haben, sollte also gedruckt haben "A. init()".
Ich habe ein paar andere Fragen über super()
gelesen, aber ich denke nicht, dass sie meine Frage genau beantworten.
Mein Python ist 3.5.3.
Ändern Sie es in 'super (D, self)' oder 'super()' – vaultah
Ich fand immer 'A .__ init __ (Selbst)' Syntax intuitiver als 'super'. –
was vaulthah bedeutet ist, dass Sie den Konstruktor des _parent_ von 'A' aufrufen. –