标签:python 继承 子类 父类 覆盖 override __init__
python 继承,子类可以覆盖父类的各种方法,包括__init__方法。
如果要覆盖父类的__init__方法,且希望在覆盖的方法中引用父类的__init__方法,比如在父类的__init__方法的基础上增加一些属性的设置或者其他。
则需要显示的引用父类的方法,否则,父类的方法不会被直接调用到的。
比如:
#coding:utf-8 # c继承了p,并实现了自己的__init__方法,也就是重新实现了__init__方法,但为了减少代码冗余 # c在自己的__init__方法里面引用了p的__init__方法,这种方法需要显示的调用p,并且要向p的 # __init__方法传递self变量 class p(object): def __init__(self,nm): self.name = nm class c(p): def __init__(self,nm,idnum): p.__init__(self,nm) self.id = idnum c1 = c(‘john‘,11) print c1 print c1.name,c1.id
运行结果是:
[root@puppet-master-231-test eg_4]# python2.7 class_inherit_demo_4.py <__main__.c object at 0x7efdf2ff6a90> john 11
标签:python 继承 子类 父类 覆盖 override __init__
原文地址:http://khaozi.blog.51cto.com/952782/1858660