zoukankan      html  css  js  c++  java
  • 在子类中如何调用父类方法

    '''
    子类中调用父类方法:
    子类继承了父类的方法,然后想进行修改,注意了是基于原有的基础上修改,那么就需要在子类中调用父类的方法
    '''
    
    # 方法一:父类名.父类方法(),当父类类名改变了,子类的各种调用都需要同步修改
    class A:
       money = 100
       def __init__(self, name):
          self.name = name
    
       def one(self):
          print('one')
    
       @property # 实例本身调用无需加括号,类调用无效
       def two(self):
          print('two')
    
       @classmethod # 类与实例均可调用,但参数只能使用类属性
       def three(cls):
          print('three %s' % cls.money)
    
       @staticmethod # 类的工具包,其实和普通函数一样,参数就是参数,实例和类调用时必须传参
       def four(self):
          print('four')
    
    class B(A):
       money = 1000
       def __init__(self, name, age):
          A.__init__(self, name) # 子类中调用父类的__init__方法,子类无需再self.xx=xx,但形参依旧不能少;父类调用__init__方法时,形参self不能少
          self.age = age
    
       def one(self):
          A.one('1') # 子类中调用父类方法(父类.方法名),记得类调用方法时self形参需要传参
          print(A.money) # 子类中调用父类的数据属性
          print(B.money)
          print(self.name)
    
    b1 = B('alex', 18)
    print(b1.__dict__) # 子类B初始化函数,self和name传给了A.__init__的self和name,name这个属性依旧是子类B实例化对象的数据属性
    print(b1.name)
    b1.one()
    
    
    # 方法二:super()
    class C:
       money = 100
       def __init__(self, name):
          self.name = name
    
       def test(self):
          print('C')
    
    class D(C):
       money = 1000
       def __init__(self, name, age):
          super().__init__(name) # 等同于super(D, self).__init__(name)
          self.age = age
    
       def test(self):
          print(super().money) # 调用父类的数据属性
          super().test() # 调用父类方法,等同于super(D, self).test()
    
    d1 = D('alex', 18)
    d1.test()
    while True: print('studying...')
  • 相关阅读:
    vue过滤器filters
    vue指令
    java命令
    mysql的information_schema表
    es6 Object的keys values entries方法
    mysql information_schema.INNODB_TRX
    流动相似性例子
    【转】time 模块详解(时间获取和转换)
    查找——平衡二叉树的实现(代码超详细注释)
    py中变量名的“秘密”
  • 原文地址:https://www.cnblogs.com/xuewei95/p/14680949.html
Copyright © 2011-2022 走看看