python 類 四 : 類的繼承與覆蓋父類方法



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









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章