python继承实例,python多继承简单案例

  python继承实例,python多继承简单案例

  下面实现一个类继承的小程序。下面结合代码介绍相关继承的知识。以轿车和汽车为例。汽车是父类,汽车是子类。

  首先,定义父类车辆

  车辆类别():

  Def _ _ init _ _ (self,轮数,功率): #构造方法,参数为轮数和功率。

  self.wheelcount,self.power,self.totaldistance=wheelcount,power,0

  #将总里程初始化为0。

  Gettotaldistance (self) 3360回归自我。totaldirection #定义了获取表格总里程的方法。

  Defdrive(自身,距离):#定义了驱动方法

  Self.totaldistance=距离2。定义子类Car。

  汽车类:

  def__init__(自身,轮数,功率):

  超级()。__init__(轮数,功率)

  车辆。__init__(自身、轮数、功率)

  超级(车,自己)。__init__(轮数,功率)

  自我。石油,自我。oilcostperkm=0,0.1子类首先重写构造方法,注意:

  1.首先,调用超类构造方法。为了解释超类方法的调用,代码实现了所有三个调用超类构造方法。其实一个就够了;

  2.在超类构造方法中,初始化轮数、功率和总里程。子类调用超类构造方法后,为汽车初始化油量和每公里油耗。

  defdrive(自身,距离):

  realdistance=min(距离,self.oil/self.oilcostperkm)

  超级()。驾驶(真实距离)

  self . oil-=real distance * self . oil costperkm

  打印(车已行驶{} km,邮箱目前存油{3360.2F}升,车辆总行驶里程3360 {} km 。格式(真实距离,自油,

  超级()。gettotaldistance()子类重写了父类的drive方法。这次只是用老猿推荐的方式调用父类的drive方法。在重写的方法中,在根据燃料量确认实际行驶里程之后,调用父类的drive方法。同时调整燃油量,输出一些车况信息,其中调用了父类的gettotaldistance()方法。

  除雾(自身,油):

  self.oil=油

  打印(加油{} L,目的

  前邮箱存油{:.2f}升".format(oil,self.oil)) 实现子类独有的加油方法,父类的车可以是畜力或人力等其他方式驱动就没有这个方法。

  

defneedoiling(self):

  ifself.oil<5:returnTrue

  else:returnFalse

实现子类独有的是否需要加油判断方法。

  

defoutput(self):

  print("车子动力为{},100KM油耗{}升,车子累计行驶{}KM,油箱存油{:.2f}L".format(self.power,self.oilcostperkm*100,

  super().gettotaldistance(),self.oil))

实现子类独有的输出车况的方法,其中调用了父类的gettotaldistance()方法。

  到此为止整个子类的代码实现完成,它完全继承了父类方法gettotaldistance,采用重写+父类调用方式实现了drive和构造方法的继承,并实现了needoiling、oiling两个子类独有的方法,其实例变量self.wheelcount,self.power,self.totaldistance是从父类继承。

  三、调用的代码

  下面是使用该类定义的一个实例,

  

car=Car(4,'汽油发动机')

  car.oiling(50)

  foriinrange(1,100):

  print("***************第{}次循环************".format(i))

  car.oiling(random.randint(10,60))?#随机加油x升

  car.drive(random.randint(5,1000))#随机驾驶x公里

  car.output()?#输出车况信息

  ifcar.needoiling():break?#如果油不够了就结束循环

四、 上述例子的完整源代码

  

#coding:utf-8

  importrandom

  classVehicle():

  def__init__(self,wheelcount,power):

  self.wheelcount,self.power,self.totaldistance=wheelcount,power,0

  

  defdrive(self,distance):

  self.totaldistance+=distance

  

  defgettotaldistance(self):returnself.totaldistance

  classCar(Vehicle):

  def__init__(self,wheelcount,power):

  super().__init__(wheelcount,power)

  Vehicle.__init__(self,wheelcount,power)

  super(Car,self).__init__(wheelcount,power)

  self.totaldistance,self.oil,self.oilcostperkm=0,0,0.1

  

  defdrive(self,distance):

  realdistance=min(distance,self.oil/self.oilcostperkm)

  super().drive(realdistance)

  self.oil-=realdistance*self.oilcostperkm

  print("车开了{}公里,目前邮箱存油{:.2f}升,目前车辆总里程:{}KM".format(realdistance,

  self.oil,super().gettotaldistance()))

  

  defoiling(self,oil):

  self.oil+=oil

  print("加油{}升,目前邮箱存油{:.2f}升".format(oil,self.oil))

  

  defneedoiling(self):

  ifself.oil<5:returnTrue

  else:returnFalse

  

  defoutput(self):

  print("车子动力为{},100KM油耗{:.2f}升,车子累计行驶{}KM,油箱存油{:.2f}L".format(self.power,self.oilcostperkm*100,super().gettotaldistance(),self.oil))

  car=Car(4,'汽油发动机')

  car.oiling(50)

  foriinrange(1,100):

  print("***************第{}次循环************".format(i))

  car.oiling(random.randint(10,60))

  car.drive(random.randint(5,1000))

  car.output()

  ifcar.needoiling():break

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: