zoukankan      html  css  js  c++  java
  • 9-9 电瓶升级

    1. 项目

    在本节最后一个 electric_car.py 版本中,给 Battery 类添加一个名为upgrade_battery()的方法。这个方法检查电瓶容量,如果它不是 85,就将它设置为 85

    创建一辆电瓶容量为默认值的电动汽车,调用方法 get_range(),然后对电瓶进行升级,并再次调用 get_range()

    你会看到这辆汽车的续航里程增加了。

     

    2. 代码

    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 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
    
        def read_odometer(self):
            """打印一条指出汽车里程的消息"""
            print("This car has " + str(self.odometer_reading) + " miles on it.")
    
    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 approximately " + 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 = Battery()
    
    
    my_tesla = ElectricCar('tesla', 'model X', 2021)
    my_tesla.battery.get_range()
    
    my_tesla.battery.upgrade_battery()
    my_tesla.battery.get_range()
    

      

    3. 执行结果

    This car can go approximately 240 miles on a full charge.
    This car can go approximately 270 miles on a full charge.
    

      

  • 相关阅读:
    001 数电 (1) : 数制和码制
    js页面滚动浮动层智能定位(MooTools)实例页面
    Value  of type java.lang.String cannot be converted to JSONObject 错误解决
    关于线程池的shutdown()方法
    Can't create handler inside thread that has not called Looper.prepare()
    配置 Win7 和 IIS7 以支持WCF
    复制JSON对象
    js页面滚动浮动层智能定位(jQuery)实例页面
    Enum和string的相互转换
    TBCompressor 2.4.2修改版,可对目录中的JS/CSS文件进行压缩
  • 原文地址:https://www.cnblogs.com/kevin-hou1991/p/14942369.html
Copyright © 2011-2022 走看看