假设子类定义了自己的__init__构造方法函数。当子类的实例对象被创建时,子类仅仅会运行自己的__init__方法函数。假设子类没有定义自己的构造方法函数。会沿着搜索树找到父类的构造方法函数去运行父类里的构造方法函数。
如子类定义了自己的构造方法函数,假设子类的构造方法函数内没有主动调用父类的构造方法函数。那父类的实例变量在子类不会在刚刚创建子类实例对象时出现了。
<script src="https://code.csdn.net/snippets/310873.js"></script>
如子类定义了自己的构造方法函数,假设子类的构造方法函数内没有主动调用父类的构造方法函数。那父类的实例变量在子类不会在刚刚创建子类实例对象时出现了。
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>