av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

Python super()函數(shù)使用及多重繼承

瀏覽:141日期:2022-07-26 11:32:53

super()函數(shù)可以用于繼承父類的方法,語法如下:

super(type[, object-or-type])

雖然super()函數(shù)的使用比較簡單,但是需要根據(jù)單繼承和多繼承來分析函數(shù)的調(diào)用關(guān)系。

首先,當(dāng)類之間的繼承關(guān)系為單繼承時,函數(shù)調(diào)用關(guān)系也比較簡單,可以參考如下的例子:

#!/usr/bin/env python3class A(object): def __init__(self): print(’class A’)class B(A): def __init__(self): super(B, self).__init__() print(’class B’)b = B()

上述代碼運行結(jié)果如下:

class Aclass B

從結(jié)果可以看出,子類B在實例化時調(diào)用了父類A的__init__()方法。

當(dāng)進行多重繼承時,需要考慮MRO的問題。所謂MRO,即Method Resolution Order,自Python2.3以來,MRO采用廣度優(yōu)先(區(qū)別于深度優(yōu)先)的規(guī)則定義。為了更好的理解這個問題,讓我們先來看如下的代碼:

#!/usr/bin/env python3class A(object): def __init__(self): self.n = 10 def minus(self, m): print(’minus in class A start’) self.n -= m print(’minus in class A end’)class B(A): def __init__(self): self.n = 7 def minus(self, m): print(’minus in class B start’) super(B, self).minus(m) self.n -= 2 print(’minus in class B end’)class C(A): def __init__(self): self.n = 12 def minus(self, m): print(’minus in class C start’) super(C, self).minus(m) self.n -= 5 print(’minus in class C end’)class D(B,C): def __init__(self): self.n = 15 def minus(self, m): print(’minus in class D start’) super(D, self).minus(m) self.n -= 2 print(’minus in class D end’)print(’The MRO of class D is :’)print(D.__mro__)d = D()d.minus(2)print(d.n)

代碼運行結(jié)果:

The MRO of class D is :(<class ’__main__.D’>, <class ’__main__.B’>, <class ’__main__.C’>, <class ’__main__.A’>, <class ’object’>)minus in class D startminus in class B startminus in class C startminus in class A startminus in class A endminus in class C endminus in class B endminus in class D end4

從運行結(jié)果可以看出,子類D的MRO為(<class ’__main__.D’>, <class ’__main__.B’>, <class ’__main__.C’>, <class ’__main__.A’>, <class ’object’>),也就是子類D的minus函數(shù)在調(diào)用父類函數(shù)時的調(diào)用順序依次為BCA,而后續(xù)的調(diào)試打印信息也正好驗證了該順序。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 深夜福利网址 | 青青草免费在线观看 | 日本三级一区 | 免费久久久 | 香蕉一区二区 | 91在线精品秘密一区二区 | 亚洲一级黄色片 | 久久理论片 | 成人免费福利 | 一区二区国产精品 | 午夜免费| 成人在线视频网 | av在线成人| 成人久久网站 | 黄色网免费 | 91看片看淫黄大片 | 丁香六月综合 | 成年在线观看 | 99精品久久久久久中文字幕 | 亚洲一级大片 | 九九九免费视频 | 国产午夜一区二区三区 | 天堂8中文| 成人毛片在线 | 中文字幕理论片 | 91成人精品一区在线播放 | 毛片视频免费 | 日韩一级片在线观看 | 性生活毛片| 成人毛片网 | 国产午夜精品久久久 | 伊人网在线视频 | av一区二区三区在线观看 | 欧美特黄视频 | 日本视频免费观看 | 欧美在线免费 | 久久成人国产 | 日韩毛片免费看 | 国产精品无遮挡 | 成人女同在线观看 | 色爱综合区 |