Fall 1:Was Happning hier über Does Python Aufschalten
class A(object):
def __init__(self):
print "A"
class B(A):
pass
c = b()
#output:
#A
Fall 2:
class A(object):
def __init__(self):
print "A"
class B(A):
def __init__(self):
print "B"
c = b()
#output:
#B
In case1 läuft es den Konstruktor von class A
und in case2 läuft es die Erbauer von class B
.
Also, wenn case1 druckt, A versteht, dass es den class A
Konstruktor ausgeführt wird, weil class B
es geerbt hat.
Dann in Case2 nur den class B
Konstruktor, aber nicht class A
Konstruktor, warum ist das.
Nun, was passiert hier. Überschreibt Python den class A
Konstruktor? Oder was passiert "Ich bin neu in der Programmierung."
Der * Initialisierer * wird überschrieben. Auf den übergeordneten * Initialisierer * kann mit 'super' zugegriffen werden. –
Wenn Sie ein '__init__' in' B' setzen, überschreibt es das in 'A'. Wenn Sie es nicht tun, wird es nicht. Pythons '__init__' Methoden rufen nicht automatisch die Methoden der Superklassen '__init__' auf. Und ich weiß nicht, warum du deinen Titel "überladen" hast. – khelwood
* "Gemäß dem OOP-Konzept können Konstruktoren nicht vererbt werden." * - sagt wer? – deceze