zoukankan      html  css  js  c++  java
  • python 子类调用父类的构造函数

      当子类继承父类后,需要调用父类的方法和属性时,需要调用父类的初始化函数。

    class A(object):
        def __init__(self):
            self.nameaa = 'aa'
        def funca(self):
            print('function a %s' % self.nameaa)
            
    class B(A):
        def __init__(self):
            self.namebb = 'bb'
       def funcb(self): print('function b %s' % self.namebb) b = B() print(b.namebb) b.funcb() print(b.nameaa) b.funca()

      在子类中重写了构造函数,但新的构造函数没有初始化父类,当没有初始化父类的构造函数时,就会报错。

      (1)调用超类的构造方法

    class A(object):
        def __init__(self):
            self.nameaa = 'aa'
        def funca(self):
            print('function a %s' % self.nameaa)
            
    class B(A):
        def __init__(self):
            self.namebb = 'bb'
            A.__init__(self)       #添加
        def funcb(self):
            print('function b %s' % self.namebb)
            
    b = B()
    print(b.namebb)
    b.funcb()
    print(b.nameaa)
    b.funca()

      (2)使用super函数

    class A(object):
        def __init__(self):
            self.nameaa = 'aa'
        def funca(self):
            print('function a %s' % self.nameaa)
            
    class B(A):
        def __init__(self):
            self.namebb = 'bb'
            super(B,self).__init__()
        def funcb(self):
            print('function b %s' % self.namebb)
            
    b = B()
    print(b.namebb)
    b.funcb()
    print(b.nameaa)
    b.funca()

      super函数返回一个super对象,解析过程自动查找所有的父类和父类的父类,当前类和对象可以作为super函数的参数使用,调用函数返回的方法是超类的方法。使用super函数如果子类继承多个父类只许一次继承,使用一次super函数即可。

      如果没有重写子类的构造函数,是可以直接使用父类的属性和方法的。

    class A(object):
        def __init__(self):
            self.nameaa = 'aa'
        def funca(self):
            print('function a %s' % self.nameaa)
            
    class C(A):
        pass
    c = C()
    c.funca()
    print(c.nameaa)

  • 相关阅读:
    性能测试的bug【杭州多测师】【杭州多测师_王sir】
    Typescript: 当出现错误时,不编译文件成js文件
    git基础命令
    获取页面宽度
    详解linux下的串口通讯开发
    货源清单的配置
    物料在工厂中未被维护
    quota配额配置
    采购组织不对工厂负责
    拓端tecdat:Python金融时间序列模型ARIMA 和GARCH 在股票市场预测应用
  • 原文地址:https://www.cnblogs.com/homle/p/8724125.html
Copyright © 2011-2022 走看看