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.
    

      

  • 相关阅读:
    C/C++程序内存泄漏检测
    linux下的内存管理
    Linker Script 链接器脚本
    linux内核进程调度以及定时器实现机制
    嵌入式软件设计中查找缺陷的几个技巧
    winCE DEBUGZONE
    程序员三个境界
    EJB初识(通熟易懂)
    JVM/JDK/JRE/IDE—区别(很经典)
    dubbo初识(一)Dubbo架构设计详解
  • 原文地址:https://www.cnblogs.com/kevin-hou1991/p/14942369.html
Copyright © 2011-2022 走看看