• 子类中调用父类的方法


    父类名 . __init__(self, ...)

    可以将父类中的init中的属性重复调用,减少代码的重复

    class Vehicle:
        def __init__(self, name, speed, load, power):
            self.name = name
            self.speed = speed
            self.load = load
            self.power = power
    
        def run(self):
            print('%s我开动啦'%self.name)
    
    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.line)
    
    
    
    line1 = Subway('郑州地铁', '30m/s','500','电', '1号')
    line1.show_info() #调用自身的方法
    line1.run()  #调用父类中的类方法
    

      

    父类名 . 函数名(self)

    子类中调用父类中类方法的逻辑

    class Vehicle:
        def __init__(self, name, speed, load, power):
            self.name = name
            self.speed = speed
            self.load = load
            self.power = power
    
        def run(self):
            print('%s我开动啦'%self.name)
    
    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.line)
    
        def run(self):
            Vehicle.run(self)  #加上这句,可以实现同名函数,调用父类中的逻辑
            print('%s我来自子类'%self.line)
    
    line1 = Subway('郑州地铁', '30m/s','500','电', '1号线')
    line1.show_info() #调用自身的方法
    line1.run()
    

    super 方法

    调用父类逻辑时,不用担心类名的变动

    class Vehicle:
        def __init__(self, name, speed, load, power):
            self.name = name
            self.speed = speed
            self.load = load
            self.power = power
    
        def run(self):
            print('%s我开动啦'%self.name)
    
    class Subway(Vehicle):
        def __init__(self,name, speed, load, power,line):
            # Vehicle.__init__(self, name, speed, load, power)
            super().__init__(name, speed, load, power)    #super 方法,这样就不用担心类名被修改
            self.line = line
    
        def show_info(self):
            print(self.name, self.line)
    
        def run(self):
            # Vehicle.run(self)  #加上这句,可以实现同名函数,调用父类中的逻辑
            super().run()  #效果和上面代码一样,更适合
            print('%s我来自子类'%self.line)
    
    line1 = Subway('郑州地铁', '30m/s','500','电', '1号线')
    line1.show_info() #调用自身的方法
    line1.run()  #调用父类中的类方法
    

    super().__init__(name, speed, load, power) 等同于:

        super(Subway, self).__init__(name, speed, load, power) 
    

      

    一个奋斗中的产品小白
  • 相关阅读:
    linux 查看系统负载:uptime
    centos who命令 查看当前登录系统用户信息
    centos7 管理开机启动:systemd
    Linux ethtool 命令
    Linux ifconfig 命令
    linux centos7 目录
    POJ 1169
    POJ 1163
    POJ 1154
    POJ 1149
  • 原文地址:https://www.cnblogs.com/dabai123/p/11462638.html
Copyright © 2020-2023  润新知