亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python多重繼承的方法解析執(zhí)行順序?qū)嵗治?/h1>
 更新時間:2018年05月26日 10:37:39   作者:很長很長的名字  
這篇文章主要介紹了Python多重繼承的方法解析執(zhí)行順序,結合實例形式分析了Python多重繼承時存在方法命名沖突情況的解析執(zhí)行順序與相關原理,需要的朋友可以參考下

本文實例講述了Python多重繼承的方法解析執(zhí)行順序。分享給大家供大家參考,具體如下:

任何實現(xiàn)多重繼承的語言都要處理潛在的命名沖突, 這種沖突由不相關的祖先類實現(xiàn)同名方法引起

class A:
  def say(self):
    print("A Hello:", self)
class B(A):
  def eat(self):
    print("B Eating:", self)
class C(A):
  def eat(self):
    print("C Eating:", self)
class D(B, C):
  def say(self):
    super().say()
    print("D Hello:", self)
  def dinner(self):
    self.say()
    super().say()
    self.eat()
    super().eat()
    C.eat(self)

這里B和C都實現(xiàn)了eat方法,

在 D 的實例上調(diào)用 d.eat() 方法的話, 運行的是哪個 eat 方法呢?

>>> d = D()
>>> d.eat()
B Eating: <__main__.D object at 0x7fb90c627f60>
>>> C.eat(d)
C Eating: <__main__.D object at 0x7fb90c627f60>

超類中的方法都可以直接調(diào)用, 此時要把實例作為顯式參數(shù)傳入

Python 能區(qū)分 d.eat() 調(diào)用的是哪個方法, 是因為 Python 會按照特定的順序遍歷繼承圖。 這個順序叫方法解析順序( Method Resolution Order, MRO)。 類都有一個名為 __mro__ 的屬性, 它的值是一個元組, 按照方法解析順序列出各個超類, 從當前類一直向上, 直到object 類。 D 類的 __mro__ 屬性如下 :

>>> D.__mro__
(<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class 'object'>)
>>> d = D()
>>> d.dinner()
A Hello: <__main__.D object at 0x7fb90bd7eb70>
D Hello: <__main__.D object at 0x7fb90bd7eb70>
A Hello: <__main__.D object at 0x7fb90bd7eb70>
B Eating: <__main__.D object at 0x7fb90bd7eb70>
B Eating: <__main__.D object at 0x7fb90bd7eb70>
C Eating: <__main__.D object at 0x7fb90bd7eb70>

第一個self.say(),運行A類的say()再print出自己的第二行信息
第二個super().say(),運行A類的say()
第三個self.eat(),根據(jù) __mro__ , 找到的是 B 類實現(xiàn)的eat方法
第四個super().eat(),根據(jù) __mro__ , 找到的是 B 類實現(xiàn)的eat方法
第五個C.eat(self)忽略 mro , 找到的是 C 類實現(xiàn)的eat方法

更多關于Python相關內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O計入門與進階教程》、《Python數(shù)據(jù)結構與算法教程》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》及《Python入門與進階經(jīng)典教程

希望本文所述對大家Python程序設計有所幫助。

相關文章

  • python Xpath語法的使用

    python Xpath語法的使用

    這篇文章主要介紹了python Xpath語法的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Python?不設計?do-while?循環(huán)結構的理由

    Python?不設計?do-while?循環(huán)結構的理由

    Python作為一種語言不支持do-while循環(huán)。?但是,我們可以采用一種變通方法來模擬do-while循環(huán)?。下面通過本文給大家分享下Python?不設計do-while?循環(huán)結構的理由,需要的朋友可以參考下
    2022-01-01
  • Python利用requests模塊下載圖片實例代碼

    Python利用requests模塊下載圖片實例代碼

    這篇文章主要給大家介紹了關于Python利用requests模塊下載圖片的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • Python內(nèi)省與反射巧妙運用示例

    Python內(nèi)省與反射巧妙運用示例

    這篇文章主要為大家介紹了Python內(nèi)省與反射巧妙運用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • Python實現(xiàn)抖音熱搜定時爬取功能

    Python實現(xiàn)抖音熱搜定時爬取功能

    這篇文章主要為大家介紹了利用Python制作的一個新摸魚神器,可以實現(xiàn)抖音熱搜定時爬取。文中的實現(xiàn)步驟講解詳細,感興趣的可以試一試
    2022-03-03
  • Python中threading庫實現(xiàn)線程鎖與釋放鎖

    Python中threading庫實現(xiàn)線程鎖與釋放鎖

    threading用于提供線程相關的操作,為了保證安全的訪問一個資源對象,我們需要創(chuàng)建鎖。那么Python線程鎖與釋放鎖如何實現(xiàn),感興趣的小伙伴們可以參考一下
    2021-05-05
  • python字符串操作的15種方法匯總

    python字符串操作的15種方法匯總

    對于python中的字符串,有多種操作方法,下面這篇文章主要給大家介紹了關于python字符串操作的15種方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • Python 日期區(qū)間處理 (本周本月上周上月...)

    Python 日期區(qū)間處理 (本周本月上周上月...)

    這篇文章主要介紹了Python 日期區(qū)間處理 (本周本月上周上月...),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • Python 字典中的所有方法及用法

    Python 字典中的所有方法及用法

    這篇文章主要介紹了Python 字典中的所有方法及用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • Python使用OpenCV和K-Means聚類對畢業(yè)照進行圖像分割

    Python使用OpenCV和K-Means聚類對畢業(yè)照進行圖像分割

    圖像分割是將圖像分割成多個不同區(qū)域(或片段)的過程。目標是將圖像的表示變成更容易和更有意義的圖像。在這篇博客中,我們詳細的介紹了使用方法,感興趣的可以了解一下
    2021-06-06

最新評論