Ne peut pas accéder à un parent membre de la variable en Python
J'essaye d'accéder à un parent variable membre d'une classe étendue. Mais l'exécution du code suivant...
class Mother(object):
def __init__(self):
self._haircolor = "Brown"
class Child(Mother):
def __init__(self):
Mother.__init__(self)
def print_haircolor(self):
print Mother._haircolor
c = Child()
c.print_haircolor()
Me met cette erreur:
AttributeError: type object 'Mother' has no attribute '_haircolor'
Ce que je fais mal?
Vous devez vous connecter pour publier un commentaire.
Vous êtes mélange de classe et d'instance attributs.
Vous voulez que l'instance de l'attribut, et non pas l'attribut de classe, de sorte que vous devriez utiliser
self._haircolor
.Aussi, vous devriez vraiment utiliser
super
dans le__init__
dans le cas où vous décidez de changer votre héritage àFather
ou quelque chose.super()
comportement lorsqu'il est confronté à l'héritage multiple? Ne l'habitude MRO coup de pied?