classCar:"""A simple attempt to represent a car."""def__init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
self.odometer_reading =0defget_descriptive_name(self):
long_name = f"{self.year} {self.make} {self.model}"return long_name.title()defread_odometer(self):print(f"This car has {self.odometer_reading} miles on it.")defupdate_odometer(self, mileage):if mileage >= self.odometer_reading:
self.odometer_reading = mileage
else:print("You can't roll back an odometer!")defincrement_odometer(self, miles):
self.odometer_reading += miles
classBattery:"""A simple attempt to model a battery for an electric car."""def__init__(self, battery_size=75):"""Initialize the battery's attributes."""
self.battery_size = battery_size
defdescribe_battery(self):"""Print a statement describing the battery size."""print(f"This car has a {self.battery_size}-kWh battery.")defget_range(self):"""Print a statement about the range this battery provides."""if self.battery_size ==75:range=260elif self.battery_size ==100:range=315print(f"This car can go about {range} miles on a full charge.")classElectricCar(Car):"""Represent aspects of a car, specific to electric vehicles."""def__init__(self, make, model, year):"""
Initialize attributes of the parent class.
Then initialize attributes specific to an electric car.
"""super().__init__(make, model, year)
self.battery = Battery()defdescribe_battery(self):"""Print a statement describing the battery size."""print(f"This car has a {self.battery_size}-kWh battery.")
my_tesla = ElectricCar('tesla','model s',2019)print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()
my_tesla.battery.get_range()
#上述代码运行结果:2019 Tesla Model S
This car has a 75-kWh battery.
This car can go about 260 miles on a full charge.