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