zoukankan      html  css  js  c++  java
  • python 继承/父类和子类的关系

    # <editor-fold desc="父类和子类关系,继承">
    # <editor-fold desc="类--讲解--Car">

    class Car():
    def __init__(self,make,model,year):
    self.make=make
    self.model=model
    self.year =year
    self.meter=0
    def get_car_desc(self):
    long_name=str(self.year)+' '+self.model+' '+self.make
    return long_name
    def read_meter(self): #读取公里数的方法
    print("This car have "+str(self.meter)+" mi")
    def update_meter(self,mileage): #定义了一个修改公里数的方法,以后要修改公里数的时候,就不需要通过实例化修改属性的值了
    self.meter=mileage
    def increment_meter(self,miles): #新增加的公里数,做加法运算
    self.meter+=miles
    my_car=Car('china','Audi',2010)
    # print(my_car.model)
    # print(my_car.get_car_desc().title())
    # my_car.read_meter()
    # my_car.meter=50 #通过实例化对属性的值做改变
    # my_car.read_meter()
    # my_car.update_meter(100)
    # my_car.read_meter()
    # my_car.increment_meter(200)
    # my_car.read_meter()

    # </editor-fold>
    class Battery():
    def __init__(self,battery_size=70):
    self.battery_size=battery_size
    def describe_battery(self):
    print('这个车有'+str(self.battery_size)+'的电容量')
    def get_range(self):
    if self.battery_size==70:
    car_range=240
    elif self.battery_size <=100 and self.battery_size>=75:
    car_range=270
    msg="这个车能跑%s公里"%car_range
    return msg
    class ElectricCar(Car): #创造ElectricCar(电动汽车)类
    def __init__(self,make,model,year):
    super().__init__(make,model,year)
    self.battery=Battery()
    def describe_battery(self):
    print("电动汽车特有的属性是%s"%self.battery.battery_size)
    def read_meter(self): #父类当中的一个方法,对子类没有帮助,在子类当中,定义一个父类当中同名字的方法名,那么就会忽略父类的方法,取其精华。(重写父类的方法)
    print("这个方法是重写父类的方法,会忽略父类当中的read_meter()方法")
    my_ele_car=ElectricCar("usa",'baoma',2020)
    # print(my_ele_car.get_car_desc())
    # my_ele_car.read_meter()
    # my_ele_car.describe_battery()
    my_ele_car.battery.describe_battery()
    # print(my_ele_car.battery.battery_size)
    print(my_ele_car.battery.get_range())
    # """
    # super()是一个特殊的函数,它让父类和子类可以关联起来。这段代码让python调用ElectricCar的父类方法__init__(),让ElectricCar实例包含父类的所有属性。Python中类的初始化方法是__init__(),因此父类、子类的初始化方法都是这个,如果子类不实现__init__()这个函数,初始化时调用父类的初始化函数,如果子类实现了这个函数,则要在这个函数里显式调用一下父类的__init__(),这跟C++,jAVA不一样,他们是自动调用父类构造函数的。
    # """
    # </editor-fold>
    本人小白,学习当中,希望大家多指点。
  • 相关阅读:
    「B/S端开发」如何将DevExtreme组件添加到React应用程序?
    完整UI组件库Kendo UI for Vue R3 2021
    DevExpress WPF界面控件
    DevExpress WinForm MVVM数据和属性绑定指南(Part 1)
    界面控件Telerik UI for WinForm初级教程
    ua-parser-js 实现获取浏览器信息和操作系统信息
    vue--axios 拦截器的简单介绍及使用场景
    css 插件
    去除List集合中的重复值(四种好用的方法)
    常州大学/企业微信/电费查询脚本
  • 原文地址:https://www.cnblogs.com/dapan-no1/p/10703863.html
Copyright © 2011-2022 走看看