大哥救命啊,为什么报错啊,头都扣烂了。
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 update_odometer(self, mileage):
'''
将里程数读数设置为指定的值
禁止将里程表读数回调
'''
if mileage >= self.odometer_reading:
self.odometer_reading = mileage
else:
print('you not can roll back an odometer!')
def increment_odometer(self, miles):
'''将里程表读数增加指定的量'''
self.odometer_reading += miles
def read_odometer(self):
'''打印一条指出汽车里程的消息'''
print(f'This car has {self.odometer_reading} miles on it.')
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):
'''电动汽车的独特之处'''
def __init__(self, make, model, year):
'''初始化父类的属性'''
super().__init__(make, model, year)
self.battery=Battery
def descride_battery(self):
'''打印一条描述电瓶容量的消息'''
print(f'this car has a {self.battery_size}-kwh battery')
my_tesla = ElectricCar('tesla', 'model', 2019)
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()
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 update_odometer(self, mileage):
'''
将里程数读数设置为指定的值
禁止将里程表读数回调
'''
if mileage >= self.odometer_reading:
self.odometer_reading = mileage
else:
print('you not can roll back an odometer!')
def increment_odometer(self, miles):
'''将里程表读数增加指定的量'''
self.odometer_reading += miles
def read_odometer(self):
'''打印一条指出汽车里程的消息'''
print(f'This car has {self.odometer_reading} miles on it.')
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):
'''电动汽车的独特之处'''
def __init__(self, make, model, year):
'''初始化父类的属性'''
super().__init__(make, model, year)
self.battery=Battery()
def descride_battery(self):
'''打印一条描述电瓶容量的消息'''
print(f'this car has a {self.battery_size}-kwh battery')
my_tesla = ElectricCar('tesla', 'model', 2019)
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery() 问题出现在self.battery=Battery这里,我们需要实例化Battery这个类,也就是在它后面添加一对括号。
改成self.battery = Battery()就可以了。
Battery表示一个类,Battery()表示这个类型下的一个具体的对象(也叫做实例)。打个比方,Human表示人这个类别,Human()表示一个具体的人。
页:
[1]