这个报错说Bettery缺失self,但是看不出来哪里缺失,是哪里写错了
可以给ElectricCar这个类的构造方法增加一个参数,用于传入一个Battery电池对象,来初始化ElectricCar类对象里的battery成员。
修改如下:
class Car:
def __init__(self,make,model,years):
self.make=make
self.model=model
self.years=years
self.odometer_reading=0
def get_descriptive_name(self):
long_name=f"{self.years} {self.make} {self.model}"
return long_name.title()
def read_odometer(self):
print(f"The 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 Battery:
def __init__(self,battery_size=75):
self.battery_size=battery_size
def describe_battery(self):
print(f"This car has a {self.battery_size}-KWh battery. ")
class ElectricCar(Car):
# ElectricCar构造方法增加一个参数,用于传入Battery类对象
# 来初始化ElectricCar类对象的battery成员
def __init__(self,make,model,years,battery):
super().__init__(make,model,years)
self.battery=battery
def describe_battery(self):
print(f"This car has a {self.battery_size}-KWh battery. ")
ba = Battery(80)
my_tesla = ElectricCar('tesla', 'model s',2019,ba)
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()