关于面向对象电动车
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=str(self.year)+''+self.make+''+self.model
return long_name.title()
def read_odometer(self):
print("This car has"+str(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 rool back an odometer!")
def increment_odometer(self,miles):
self.odometer_reading+=miles
class Battery():
def __init__(self,battery_size=70):
self.battery_size=battery_size
def describe_battery(self):
print("This car has a"+str(self.battery_size)+"-kWh battery.")
def get_range(self):
if self.battery_size==70:
range=240
elif self.battery_size==85:
range=270
message='This car can go apporximately'+str(range)
message+="miles on a full charge."
print(message)
class ElectricCar(Car):
def __init__(self,make,model,year):
super().__init__(make,model,year)
self.battery_size=Battery()
my_tesla=ElectricCar('tesla','model s',2016)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()
my_tesla.battery.get_range()
为什么会报错:2016Teslamodel S
Traceback (most recent call last):
File "C:/Users/zjm16/Desktop/python/ecar.py", line 52, in <module>
my_tesla.describe_battery()
AttributeError: 'ElectricCar' object has no attribute 'describe_battery'
>>>
本帖最后由 kylin121380 于 2020-10-11 22:01 编辑
my_tesla是实例化的Electriccar,Electriccar没有describe_battery函数,想要调用的话应该是my_tesla.battery_size.describe_battery()
页:
[1]