Отсутствует атрибут у экземпляра класса

Никак не могу понять, в чем проблема. Код идентичен коду из книги. Пример из книги Эрика Мэтиза "Изучаем питон"

class Car():
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0

    def get_descriptive_name(self):
        long_name = f"{self.year} {self.make} {self.model}"
        return long_name.title()

    def read_odometer(self):
        print(f"This car has {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 on odometer!")

    def increment_odometer(self, miles):
        self.odometer_reading += miles


class Battery():
    def __init___(self, battery_size=54):
        self.battery_size = battery_size

    def describe_battery(self):
        print(f"This car has a {self.battery_size}-kWh battery.")


class ElectricCar(Car):
    def __init__(self, make, model, year):
        super().__init__(make, model, year)
        self.battery = Battery()


my_tesla = ElectricCar('tesla', 'model_s', '2019')

print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()

Traceback (most recent call last):

  File "c:/Python/emip_9_2.py", line 216, in <module>
    my_tesla.battery.describe_battery()
  File "c:/Python/emip_9_2.py", line 202, in describe_battery
      print(f"This car has a {self.battery_size}-kWh battery.")
AttributeError: 'Battery' object has no attribute 'battery_size'

Ответы (1 шт):

Автор решения: gil9red

В конструкторе Battery у вас 3 нижних подчеркивания, вместо двух. Поэтому этот метод не стал конструктором и атрибут battery_size не был создан:

class Battery():
    def __init___(self, battery_size=54):
    #         ^^^
        self.battery_size = battery_size

    def describe_battery(self):
        print(f"This car has a {self.battery_size}-kWh battery.")
→ Ссылка