zoukankan      html  css  js  c++  java
  • python之子类调用父类的两种方式

    第一种方式

    直接在子类中调用父类名:

    • Vehicle.__init__(self,name,speed,load,power)#调用父类的实例
    • Vehicle.run(self) #调用父类的方法
    #直接调用父类名
    class Vehicle:
        Country = "China"
        def __init__(self,name,speed,load,power):
            self.name = name
            self.speed = speed
            self.load = load
            self.power = power
            
        def run(self):
            print("开动了!!!")
    class Subway(Vehicle):#继承父类
        def __init__(self,name,speed,load,power,line):
            Vehicle.__init__(self,name,speed,load,power)#调用父类的实例
            self.line = line
            
        def show_info(self):
            print(self.name,self.speed,self.load,self.power,self.line)
            
        def run(self):
            Vehicle.run(self)  #调用父类的方法
            print("%s %s 线开动啦" % (self.name, self.line))
    d1 = Subway("北京地铁","10km/h",10000,"",13)
    d1.show_info()
    d1.run()

    第二种方式

    调用super方法:

    • super().__init__(name,speed,load,power)
    • super().run()
    #super方法
    class Vehicle:
        Country = "China"
        def __init__(self,name,speed,load,power):
            self.name = name
            self.speed = speed
            self.load = load
            self.power = power
    
        def run(self):
            print("开动了!!!")
    class Subway(Vehicle):#继承父类
        def __init__(self,name,speed,load,power,line):
            #Vehicle.__init__(self,name,speed,load,power)#调用父类的实例
            super().__init__(name,speed,load,power)
            self.line = line
    
        def show_info(self):
            print(self.name,self.speed,self.load,self.power,self.line)
    
        def run(self):
            #Vehicle.run(self)  #调用父类的方法
            super().run()
            print("%s %s 线开动啦" % (self.name, self.line))
    d1 = Subway("北京地铁","10km/h",10000,"",13)
    d1.show_info()
    d1.run()

    两种调用方法对比

    调用实例:

    1. Vehicle.__init__(self,name,speed,load,power)#调用父类的实例
    2. super().__init__(name,speed,load,power)

    调用方法:

    1. Vehicle.run(self)  #调用父类的方法
    2. super().run()

    用super方法调用父类方法的好处:

    1、不用再写父类名,就算父类名字改变,子类调用父类的逻辑也不需要改动;

    2、不用再传self参数,默认把self传进去了

  • 相关阅读:
    Ecshop后台管理增加成本价和毛利润统计功能
    如何在Ecshop首页调用积分商城里的商品
    Ecshop调用促销商品
    Python 精选内置函数
    Python爬虫原理
    android中解析后台返回的json字符串
    JSONObject与JSONArray的使用
    python的字符串截取
    centos6系统下网卡bond模式介绍
    fio工具中的iodepth参数与numjobs参数-对测试结果的影响
  • 原文地址:https://www.cnblogs.com/songzhixue/p/10064124.html
Copyright © 2011-2022 走看看