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>
    本人小白,学习当中,希望大家多指点。
  • 相关阅读:
    进行C# 编写发送邮箱,报错Error: need EHLO and AUTH first !
    vue使jsZip和FileSaver.js打包下载
    基于js或vue项目实现一次批量文件下载功能
    模块
    now 与 down 中的 ow 发音是否一样?
    __time64_t 解决了 2038 年问题,可是没解决 1969年问题
    MagickSetOption(mw, "jpeg:extent", "...kb"); 这个函数有时结果出乎意料
    解决Idea启动Spring Boot很慢的问题
    CAP原理和BASE思想和ACID模型
    java并发编程之Condition
  • 原文地址:https://www.cnblogs.com/dapan-no1/p/10703863.html
Copyright © 2011-2022 走看看