Ich bin Anfänger von Python. Ich kann Vererbung nicht verstehen und __init__()
.
class Num:
def __init__(self,num):
self.n1 = num
class Num2(Num):
def show(self):
print self.n1
mynumber = Num2(8)
mynumber.show()
ERGEBNIS: 8
Das ist in Ordnung. Aber ich ersetze Num2
durch
class Num2(Num):
def __init__(self,num):
self.n2 = num*2
def show(self):
print self.n1,self.n2
ERGEBNIS: Error. Num2 has no attribute "n1".
Wie kann in diesem Fall Num2
zugegriffen werden n1
?
__init__
Methode, die in einer abgeleiteten Klasse nicht definiert ist , vererbt wird. Dies liegt daran, dass "wenn ein angefordertes Attribut in der Klasse nicht gefunden wird, die Suche in der Basisklasse fortgesetzt wird". (doc)