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.
    

      

  • 相关阅读:
    Odoo 库存管理-库存移动(Stock Move)新玩法
    odoo8.0+PyCharm4.5开发环境配置
    (总结)隐藏PHP版本与PHP基本安全设置
    Docker无法启动 Could not find a free IP address range for interface 'docker0' 最方便的解决办法
    MySQL Point in Time Recovery the Right Way
    The query below helps you to locate tables without a primary key:
    记一次揪心的MySQL数据恢复过程
    Linux中利用extundelete恢复误删除的数据
    Centos升级Python 2.7并安装pip、ipython
    navicat
  • 原文地址:https://www.cnblogs.com/kevin-hou1991/p/14942369.html
Copyright © 2011-2022 走看看