• 子类中调用父类的方法


    父类名 . __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) 
    

      

    一个奋斗中的产品小白
  • 相关阅读:
    CSS学习笔记07 盒子模型
    [Android]AndFix使用说明
    [Android]自定义控件LoadMoreRecyclerView
    [算法]Plus One
    [Android]android Service后台防杀
    [Android]android studio预览视图时报错
    [算法]删除无序单链表中值重复出现的节点
    [算法] 将单链表的每K个节点之间逆序
    [Android]热修复框架AndFix测试说明
    [算法]单链表的选择排序
  • 原文地址:https://www.cnblogs.com/dabai123/p/11462638.html
Copyright © 2020-2023  润新知