Je ne peux pas récupérer la valeur d'une variable créée uniquement par la classe enfant héritée. De même, la modification de la valeur d'une variable héritée de la classe parent dans le init de la classe enfant ne s'applique pas.
Voici la classe parentale :
class Car():
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def __str__(self):
return str(self.__class__) + ": " + str(self.__dict__)
def get_descriptive_name(self):
long_name = str(self.year) + ' ' + self.make + ' ' + self.model
return long_name.title()
def read_odometer(self):
print("This car has " + str(self.odometer_reading) + " miles on it.")
def update_odometer(self, mileage):
if mileage >= self.odometer_reading:
self.odometer_reading = mileage
else:
print("You can't roll back an odometer!")
def increment_odometer(self, miles):
self.odometer_reading += miles
Et voici la classe enfant :
class ElectricCar(Car):
def __init___(self, make, model, year):
super(ElectricCar, self).__init__(make, model, year)
self.odometer_reading = 100
self.battery_size = 70
def __str__(self):
return str(self.__class__) + ": " + str(self.__dict__)
def describe_battery(self):
print(self.battery_size)
Maintenant, si j'essaie d'exécuter ce code :
my_tesla = ElectricCar('tesla', 'model s', 2016)
print(my_tesla)
print(my_tesla.describe_battery())
J'obtiens l'exception suivante :
<class '__main__.ElectricCar'>:
{'make': 'tesla', 'model': 'model s', 'year': 2016, 'odometer_reading': 0}
AttributeError: 'ElectricCar' object has no attribute 'battery_size'
J'ai une variable oddmeter_reading dont la valeur est 0 dans la classe parent. J'ai changé la valeur de la classe enfant pour 100, mais cela ne s'est pas appliqué. De plus, la variable battery_size
qui n'est défini que dans la classe enfant, n'est pas créé dans init.
Quel est le problème ? Qu'est-ce qui me manque ?