最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

總結(jié)python實(shí)現(xiàn)父類調(diào)用兩種方法的不同

 更新時(shí)間:2017年01月15日 19:47:06   作者:hongweipeng  
最近在工作中實(shí)現(xiàn)父類調(diào)用的時(shí)候發(fā)現(xiàn)了一個(gè)錯(cuò)誤,然后通過分析實(shí)踐總結(jié)出來了,下面這篇文章主要給大家總結(jié)了python中實(shí)現(xiàn)父類調(diào)用兩種方法的不同之處,需要的朋友可以參考借鑒,下面來一起看看吧。

python中有兩種方法可以調(diào)用父類的方法:

super(Child, self).method(args)

 Parent.method(self, args)

我用其中的一種報(bào)了如下錯(cuò)誤:

找不到 classobj。當(dāng)我把調(diào)用改為 super(B, self).f(name) 就能正確運(yùn)行,且結(jié)果正確。

分析錯(cuò)誤

因?yàn)榛悰]有繼承 object , 在python中,一個(gè)可以這樣創(chuàng)建:

class A:
 pass

也可以這樣創(chuàng)建:

class A(object):
 pass

這兩者的區(qū)別就是:

這是老式類(前者)和新式類(后者)的區(qū)別。區(qū)別可以參考:https://docs.python.org/release/2.5.2/ref/node33.html

python3已經(jīng)把舊類型去掉了,也就是說已經(jīng)隱式繼承了object,所以,python3中寫不寫繼承object都是沒有區(qū)別的

兩種調(diào)用的區(qū)別

Parent.__init__(self) super(Child, self).__init__() 的區(qū)別是什么?

super 理解成父類也是理所當(dāng)然,python里其實(shí)指的是 MRO 中的下一個(gè)類!

super其實(shí)干了這件事,看這個(gè)答案:

def super(cls, inst):
 mro = inst.__class__.mro() # Always the most derived class
 return mro[mro.index(cls) + 1]

MRO 全稱 Method Resolution Order,它代表了類繼承的順序。

super 是用來解決多重繼承問題的,假設(shè)B C D 都是直接繼承class A

class E(B, C, D):
 def __init__(self):
  # code...

如果E類的構(gòu)造函數(shù)使用 super(E, self).__init__() 時(shí),A類的構(gòu)造函數(shù)會(huì)被執(zhí)行一次,而用另一種方法,A類的構(gòu)造函數(shù)會(huì)被執(zhí)行多次。

在 MRO 中,基類永遠(yuǎn)出現(xiàn)在派生類后面,如果有多個(gè)基類,基類的相對順序保持不變。

總結(jié)

個(gè)人覺得,復(fù)雜的繼承結(jié)構(gòu)是設(shè)計(jì)中不良的設(shè)計(jì),當(dāng)繼承結(jié)構(gòu)清晰后,兩個(gè)方法其實(shí)就沒什么區(qū)別了。以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助。

相關(guān)文章

  • Python小進(jìn)度條顯示代碼

    Python小進(jìn)度條顯示代碼

    今天小編就為大家分享一篇關(guān)于Python小進(jìn)度條顯示代碼,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Python統(tǒng)計(jì)某列不同值的個(gè)數(shù)的示例代碼

    Python統(tǒng)計(jì)某列不同值的個(gè)數(shù)的示例代碼

    在數(shù)據(jù)分析和數(shù)據(jù)處理中,統(tǒng)計(jì)數(shù)據(jù)往往集中在特定列中不同值的出現(xiàn)次數(shù),本文主要介紹了Python統(tǒng)計(jì)某列不同值的個(gè)數(shù)的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • python?Prophet時(shí)間序列預(yù)測工具庫使用功能探索

    python?Prophet時(shí)間序列預(yù)測工具庫使用功能探索

    Python?Prophet是一個(gè)強(qiáng)大的時(shí)間序列預(yù)測工具,由Facebook開發(fā),具有易用性和高度可定制性的特點(diǎn),本文將深入介紹Python?Prophet的基本概念、安裝方法以及如何使用它進(jìn)行時(shí)間序列預(yù)測,并提供豐富的示例代碼來幫助大家入門
    2024-01-01
  • Python使用sys.exc_info()方法獲取異常信息

    Python使用sys.exc_info()方法獲取異常信息

    這篇文章主要介紹了Python使用sys.exc_info()方法獲取異常信息,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Python實(shí)現(xiàn)Linux監(jiān)控的方法

    Python實(shí)現(xiàn)Linux監(jiān)控的方法

    本文通過實(shí)例代碼給大家介紹了Python實(shí)現(xiàn)Linux監(jiān)控的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • python?實(shí)現(xiàn)銀行卡號查詢銀行名稱和簡稱功能

    python?實(shí)現(xiàn)銀行卡號查詢銀行名稱和簡稱功能

    這篇文章主要介紹了python?實(shí)現(xiàn)銀行卡號查詢銀行名稱和簡稱功能,本文通過實(shí)例代碼補(bǔ)充介紹了基于PyQT5+OpenCv實(shí)現(xiàn)銀行卡號識別功能,感興趣的朋友一起看看吧
    2023-11-11
  • python中turtle庫的簡單使用教程

    python中turtle庫的簡單使用教程

    這篇文章主要給大家介紹了關(guān)于python中turtle庫的簡單使用教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python協(xié)程 yield與協(xié)程greenlet簡單用法示例

    Python協(xié)程 yield與協(xié)程greenlet簡單用法示例

    這篇文章主要介紹了Python協(xié)程 yield與協(xié)程greenlet簡單用法,簡要講述了協(xié)程的概念、原理,并結(jié)合實(shí)例形式分析了Python協(xié)程 yield與協(xié)程greenlet基本使用方法,需要的朋友可以參考下
    2019-11-11
  • python簡單幾步實(shí)現(xiàn)時(shí)間日期處理到數(shù)據(jù)文件的讀寫

    python簡單幾步實(shí)現(xiàn)時(shí)間日期處理到數(shù)據(jù)文件的讀寫

    這篇文章主要為大家介紹了python簡單幾步實(shí)現(xiàn)時(shí)間日期處理到數(shù)據(jù)文件的讀寫詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 詳解Python中__new__方法的作用

    詳解Python中__new__方法的作用

    Python類中有些方法名、屬性名的前后都添加__雙下畫線,這種方法、屬性通常屬于Python的特殊方法和特殊屬性。本文將聊聊構(gòu)造方法__new__實(shí)際程序的應(yīng)用場景,感興趣的可以了解一下
    2022-03-03

最新評論

克拉玛依市| 南平市| 中超| 双江| 井研县| 翁牛特旗| 舞阳县| 万源市| 博客| 正镶白旗| 额尔古纳市| 潜山县| 乐亭县| 涿州市| 宜兰市| 和政县| 巴里| 澄迈县| 邵阳市| 章丘市| 汉寿县| 通榆县| 浮山县| 沙坪坝区| 龙山县| 永安市| 乐亭县| 高密市| 仙桃市| 邢台县| 桐柏县| 沙雅县| 广州市| 乐都县| 鄂托克前旗| 桃源县| 镇康县| 读书| 长兴县| 叶城县| 屏边|