zoukankan      html  css  js  c++  java
  • python类继承时构造函数的运行问题

    假设子类定义了自己的__init__构造方法函数。当子类的实例对象被创建时,子类仅仅会运行自己的__init__方法函数。假设子类没有定义自己的构造方法函数。会沿着搜索树找到父类的构造方法函数去运行父类里的构造方法函数。


    如子类定义了自己的构造方法函数,假设子类的构造方法函数内没有主动调用父类的构造方法函数。那父类的实例变量在子类不会在刚刚创建子类实例对象时出现了。

    class aa:
            def __init__(self):
                    self.x = 10
                    self.y = 12
            def hello(self, x):
                    return x + 1
    class bb(aa):
            def __init__(self):               
                    aa.__init__(self) #假设注销此行。下边打印b.x和b.y将报错。没有定义
                                            #通过类名字调用父类的构造方法函数
                    self.z = 14
            
            
    a = aa()
    print a.x, a.y
    b = bb()
    print b.x, b.y

    <script src="https://code.csdn.net/snippets/310873.js"></script>
  • 相关阅读:
    01
    py5.30
    py 5.28
    py5.25
    py 5.24
    py 5.22
    py5.21
    py 5.18
    py 5.17
    py 5.16
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/7159162.html
Copyright © 2011-2022 走看看