麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

Python實(shí)現(xiàn)子類調(diào)用父類的方法

2020-02-23 06:10:37
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Python實(shí)現(xiàn)子類調(diào)用父類的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:

python和其他面向?qū)ο笳Z言類似,每個(gè)類可以擁有一個(gè)或者多個(gè)父類,它們從父類那里繼承了屬性和方法。如果一個(gè)方法在子類的實(shí)例中被調(diào)用,或者一個(gè)屬性在子類的實(shí)例中被訪問,但是該方法或?qū)傩栽谧宇愔胁⒉淮嬖冢敲淳蜁?huì)自動(dòng)的去其父類中進(jìn)行查找。

繼承父類后,就能調(diào)用父類方法和訪問父類屬性,而要完成整個(gè)集成過程,子類是需要調(diào)用的構(gòu)造函數(shù)的。

子類不顯式調(diào)用父類的構(gòu)造方法,而父類構(gòu)造函數(shù)初始化了一些屬性,就會(huì)出現(xiàn)問題
如果子類和父類都有構(gòu)造函數(shù),子類其實(shí)是重寫了父類的構(gòu)造函數(shù),如果不顯式調(diào)用父類構(gòu)造函數(shù),父類的構(gòu)造函數(shù)就不會(huì)被執(zhí)行,導(dǎo)致子類實(shí)例訪問父類初始化方法中初始的變量就會(huì)出現(xiàn)問題。

先來看看如下示例:
代碼如下:class A:
    def __init__(self):
        self.namea="aaa"
    def funca(self):
        print "function a : %s"%self.namea
class B(A):
    def __init__(self):
        self.nameb="bbb"
    def funcb(self):
        print "function b : %s"%self.nameb
b=B()
print b.nameb
b.funcb()
b.funca()
運(yùn)行結(jié)果:
代碼如下:bbb

function b : bbb
Traceback (most recent call last):
  File "D:workbenchpythonMyPythonProjectteststudyoverwrite_method.py", line 19, in <module>
    print b.funca()
  File "D:workbenchpythonMyPythonProjectteststudyoverwrite_method.py", line 6, in funca
    print "function a : %s"%self.namea
AttributeError: B instance has no attribute 'namea'
在子類中,構(gòu)造函數(shù)被重寫,但新的構(gòu)造方法沒有任何關(guān)于初始化父類的namea屬性的代碼,為了達(dá)到預(yù)期的效果,子類的構(gòu)造方法必須調(diào)用其父類的構(gòu)造方法來進(jìn)行基本的初始化。有兩種方法能達(dá)到這個(gè)目的:調(diào)用超類構(gòu)造方法的未綁定版本,或者使用super函數(shù)。

方法一:調(diào)用未綁定的超類構(gòu)造方法

修改代碼,多增一行:
代碼如下:class A:
    def __init__(self):
        self.namea="aaa"
    def funca(self):
        print "function a : %s"%self.namea
class B(A):
    def __init__(self):
        #這一行解決了問題
        A.__init__(self)
        self.nameb="bbb"

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久久久久久网站 | 精品国产呦系列在线看 | 久久国产精品电影 | 国产精品区一区二区三区 | 一级在线免费观看视频 | 久久男人视频 | 亚洲精品有限 | 91精品国产日韩91久久久久久360 | 久久一本日日摸夜夜添 | av日韩在线免费观看 | 国产在线精品一区二区三区不卡 | 成人三级电影在线 | 黑人日比 | 亚洲一区二区三区日本久久九 | 久草视频在线看 | 国产资源在线免费观看 | 亚洲精品一区二区三区大胸 | 亚洲精品一区国产精品丝瓜 | 91九色视频在线播放 | av影院在线播放 | 欧美人与牲禽动交精品一区 | 中文有码一区二区 | 最新欧美精品一区二区三区 | 大学生a级毛片免费视频 | 欧美色淫 | www.99re14.com| 成人在线网站 | 女教师~淫辱の动漫在线 | 成人视屏免费看 | 一级美女大片 | 在线观看国产 | 欧洲精品久久 | 国产精品视频亚洲 | 特级黄aaaaaaaaa毛片 | 久久久久免费精品国产小说色大师 | 欧美精品成人一区二区三区四区 | 久久精品一二三区白丝高潮 | 亚洲人成电影在线 | 日韩视频一区二区三区四区 | h视频免费观看 | 色玖玖综合 |