|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- 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.year
- 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 roll 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 upgrade_battery(self):
- if self.battery_size != 85:
- self.battery_size = 85
- def get_range(self):
- if self.battery_size == 70:
- range = 240
- elif self.battery_size == 85:
- range = 270
- message = "This car can go approxximately " + str(range)
- message += " miles on a full charge."
- print(message)
- self.upgrade_battery()
- class ElectricCar(Car):
- def __init__(self, make, model, year):
- super().__init__(make, model, year)
- self.battery = Battery()
- my_tesla = ElectricCar('tesla', 'model s', '2016')
- print(my_tesla.get_descriptive_name())
- my_tesla.battery.describe_battery()
- my_tesla.battery.get_range()
- my_tesla.battery.get_range()
复制代码
self.upgrade_battery()
44行,按说程序不都是从上向下执行吗?为什么这一行执行完后battery_size还能从70变成85?
调用 get_range() --> 执行到 self.upgrade_battery() --> 如果 self.battery_size 不等于 85,则设置其为 85
|
|