zoukankan      html  css  js  c++  java
  • python基础知识(继承)

    继承的基本语法

    class  Class(继承那个基类如果有多个基类用逗号隔开,如果没有就继承object):

      """ 类的帮助信息"""

      类体

    方法重写

    派生类中调用基类的__init__()方法

    方法重写

    在派生类中重写方法

    在派生类中调用基类的__init__()方法

    super()可以在派生类当中调用基类的构造方法

    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 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 print_battery(self):
        print(self.battery_size)

      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)

      def upgrade_battery(self):
        if self.battery_size != 85:
          self.battery_size = 85
        print(self.battery_size)

    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.upgrade_battery()
    my_tesla.battery.print_battery()
    my = ElectricCar('tesla', 'model s', 2017)
    my.battery.get_range()
    my.battery.upgrade_battery()
    my.battery.get_range()


  • 相关阅读:
    编写安全代码:小心使用浮点数
    编写安全代码:有符号数和无符号数的移位区别右移
    封装了 C# 矩阵计算类CMarix
    几种位操作办法
    百度地图 鼠标绘制图形判 重叠 相交 demo
    eclipse 鼠标变成十字
    五(一)、spring 声明式事务注解配置
    eclipse创建Dynamic Web Project时忘记选中生成web.xml
    tomcat 请求地址去掉项目名称方法
    mybatis java类型和 jdbc类型 对应关系
  • 原文地址:https://www.cnblogs.com/zhangjiantaocs/p/11969750.html
Copyright © 2011-2022 走看看