鱼C论坛

 找回密码
 立即注册
查看: 2499|回复: 1

[已解决]类的方法有个问题不明吧

[复制链接]
发表于 2020-2-8 23:30:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. class Car():
  2.    
  3.     def __init__(self, make, model, year):
  4.         self.make = make
  5.         self.model = model
  6.         self.year = year
  7.         self.odometer_reading = 0
  8.    
  9.     def get_descriptive_name(self):
  10.         long_name = str(self.year) + ' ' + self.make + ' ' + self.year
  11.         return long_name.title()
  12.    
  13.     def read_odometer(self):
  14.         print("This car has " + str(self.odometer_reading) + " miles on it.")
  15.    
  16.     def update_odometer(self, mileage):
  17.         if mileage >= self.odometer_reading:
  18.             self.odometer_reading = mileage
  19.         else:
  20.             print("You can't roll back an odometer!")
  21.    
  22.     def increment_odometer(self, miles):
  23.         self.odometer_reading += miles

  24. class Battery():
  25.     def __init__(self, battery_size = 70):
  26.         self.battery_size = battery_size

  27.     def describe_battery(self):
  28.         print("This car has a " + str(self.battery_size) + "-Kwh battery.")

  29.     def upgrade_battery(self):
  30.         if self.battery_size != 85:
  31.             self.battery_size = 85

  32.     def get_range(self):
  33.         if self.battery_size == 70:
  34.             range = 240
  35.         elif self.battery_size == 85:
  36.             range = 270
  37.         message = "This car can go approxximately " + str(range)
  38.         message += " miles on a full charge."
  39.         print(message)
  40.         self.upgrade_battery()

  41. class ElectricCar(Car):
  42.     def __init__(self, make, model, year):
  43.         super().__init__(make, model, year)
  44.         self.battery = Battery()


  45. my_tesla = ElectricCar('tesla', 'model s', '2016')
  46. print(my_tesla.get_descriptive_name())

  47. my_tesla.battery.describe_battery()
  48. my_tesla.battery.get_range()
  49. my_tesla.battery.get_range()
复制代码

self.upgrade_battery()
44行,按说程序不都是从上向下执行吗?为什么这一行执行完后battery_size还能从70变成85?


最佳答案
2020-2-9 14:44:43
调用 get_range() --> 执行到 self.upgrade_battery() --> 如果 self.battery_size 不等于 85,则设置其为 85
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-9 14:44:43 | 显示全部楼层    本楼为最佳答案   
调用 get_range() --> 执行到 self.upgrade_battery() --> 如果 self.battery_size 不等于 85,则设置其为 85
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-3 20:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表