Python类继承时构造函数的执行问题

本网站用的阿里云ECS,推荐大家用。自己搞个学习研究也不错
如果子类定义了自己的__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

推荐阅读:

《Python开发技术详解》.( 周伟,宗杰).[高清PDF扫描版+随书视频+代码] http://www.linuxidc.com/Linux/2013-11/92693.htm

Python脚本获取Linux系统信息 http://www.linuxidc.com/Linux/2013-08/88531.htm

Python 的详细介绍请点这里
Python 的下载地址请点这

未经允许不得转载:演道网 » Python类继承时构造函数的执行问题

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册