亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python中super的用法實例

系統(tǒng) 2171 0

super 是用來解決多重繼承問題的,直接用類名調(diào)用父類方法在使用單繼承的時候沒問題,但是如果使用多繼承,會涉及到查找順序(MRO)、重復(fù)調(diào)用(鉆石繼承)等種種問題。總之前人留下的經(jīng)驗就是:保持一致性。要不全部用類名調(diào)用父類,要不就全部用 super,不要一半一半。

普通繼承

復(fù)制代碼 代碼如下:

class FooParent(object):?
??? def __init__(self):?
??????? self.parent = 'I\'m the parent.'?
??????? print 'Parent'?
?????
??? def bar(self,message):?
??????? print message, 'from Parent'?
?????????
class FooChild(FooParent):?
??? def __init__(self):?
??????? FooParent.__init__(self)?
??????? print 'Child'?
?????????
??? def bar(self,message):?
??????? FooParent.bar(self,message)?
??????? print 'Child bar function.'?
??????? print self.parent?
?????????
if __name__=='__main__':?
??? fooChild = FooChild()?
??? fooChild.bar('HelloWorld')?

super繼承

復(fù)制代碼 代碼如下:

class FooParent(object):?
??? def __init__(self):?
??????? self.parent = 'I\'m the parent.'?
??????? print 'Parent'?
?????
??? def bar(self,message):?
??????? print message,'from Parent'?
?
class FooChild(FooParent):?
??? def __init__(self):?
??????? super(FooChild,self).__init__()?
??????? print 'Child'?
?????????
??? def bar(self,message):?
??????? super(FooChild, self).bar(message)?
??????? print 'Child bar fuction'?
??????? print self.parent?
?
if __name__ == '__main__':?
??? fooChild = FooChild()?
??? fooChild.bar('HelloWorld')?

程序運行結(jié)果相同,為:

復(fù)制代碼 代碼如下:

Parent
Child
HelloWorld from Parent
Child bar fuction
I'm the parent.

從運行結(jié)果上看,普通繼承和super繼承是一樣的。但是其實它們的內(nèi)部運行機制不一樣,這一點在多重繼承時體現(xiàn)得很明顯。在super機制里可以保證公共父類僅被執(zhí)行一次,至于執(zhí)行的順序,是按照mro進行的(E.__mro__)。
注意super繼承只能用于新式類,用于經(jīng)典類時就會報錯。
新式類:必須有繼承的類,如果沒什么想繼承的,那就繼承object
經(jīng)典類:沒有父類,如果此時調(diào)用super就會出現(xiàn)錯誤:『super() argument 1 must be type, not classobj』

關(guān)于super用法的詳細研究可參考「//www.jb51.net/article/66912.htm」


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 婷婷五月情 | 色花堂国产精品第二页 | 免费国产成人高清在线观看视频 | 久久成人免费播放网站 | 国产日韩欧美中文字幕 | 精品伊人久久久 | 久久国产视频精品 | 中文字幕国产在线观看 | 老司机精品久久最新免费 | 久久精品国产欧美日韩亚洲 | 日日网| 国产成人亚洲精品77 | 国产亚洲午夜精品a一区二区 | 日韩欧美久久一区二区 | 99视频在线精品 | 久久99精品国产麻豆不卡 | 国产69精品久久久久妇女 | 国产小视频在线播放 | 亚洲国产成人久久一区久久 | 日本在线无 | 欧美激情级毛片 | 四虎精品影院 | 黄色片网站在线 | 亚洲欧美日韩成人一区在线 | 天天干视频网站 | 在线观看香蕉免费啪在线观看 | 精品福利国产 | 婷婷亚洲综合一区二区 | 久久久久久毛片免费播放 | 美女黄频视频大全免费高清 | 免费网站日本永久免费观看 | 丁香午夜婷婷 | 亚洲wuma| 国产区欧美 | 久久www免费人成看片入口 | 色琪琪永久远网址 | 精品久久久久久久一区二区伦理 | 日本三级强在线观看 | 久久精品视频在线 | a毛片免费全部播放完整成 a毛片免费全部在线播放毛 | 天天干天天谢 |