electric_car.py ❶
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.manufacturer} {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 an odometer!")
def increment_odometer(self, miles):
self.odometer_reading += miles
❷
class ElectricCar(Car):
"""Представляет аспекты машины, специфические для электромобилей."""
❸
def __init__(self, make, model, year):
"""инициализирует атрибуты класса-родителя."""
❹
super().__init__(make, model, year)
❺
my_tesla = ElectricCar('tesla', 'model s', 2019)
print(my_tesla.get_descriptive_name())
В точке
строится экземпляр
Car
. При создании класса-потомка класс-родитель
должен быть частью текущего файла, а его определение должно предшествовать
определению класса-потомка в файле. В точке
определяется класс-потомок
ElectricCar
. В определении потомка имя класса-родителя заключается в круглые
скобки. Метод
__init__()
в точке
получает информацию, необходимую для
создания экземпляра
Car
.
Функция
super()
в строке
— специальная функция, которая позволяет вы-
звать метод родительского класса. Эта строка приказывает Python вызвать метод
__init__()
класса
Car
, в результате чего экземпляр
ElectricCar
получает доступ