哺乳類(lèi)動(dòng)物->動(dòng)物->生物->有機(jī)物…多繼承:(社會(huì)角度)舞蹈老師(教舞蹈)體育老師(運(yùn)動(dòng))爸爸(帥氣)媽媽(打掃衛(wèi)生)我(舞蹈,運(yùn)動(dòng),帥氣,打掃衛(wèi)生)單繼承案例:父類(lèi):pass子類(lèi)(父類(lèi)):pass多繼承案例:父類(lèi)1:pass父類(lèi)2:pass父類(lèi)3:pass子類(lèi)(父類(lèi)1,父類(lèi)2,父類(lèi)3):pass多繼承的問(wèn)題所在:菱形繼承或者鉆石繼承中" />

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

python_單繼承與多繼承

系統(tǒng) 1588 0

單繼承與多繼承?

單繼承:一個(gè)類(lèi)只能繼承一個(gè)父類(lèi)的方式。
多繼承:一個(gè)類(lèi)可以繼承多個(gè)父類(lèi)的方式。

單繼承:(生物角度)
人類(lèi)->哺乳類(lèi)動(dòng)物->動(dòng)物->生物->有機(jī)物…

多繼承:(社會(huì)角度)

            
              舞蹈老師(教舞蹈)       體育老師(運(yùn)動(dòng))    爸爸(帥氣)  媽媽(打掃衛(wèi)生)

    我(舞蹈,運(yùn)動(dòng),帥氣,打掃衛(wèi)生)

            
          

單繼承案例:
父類(lèi):
pass

            
              子類(lèi)(父類(lèi)):
    pass

            
          

多繼承案例:
父類(lèi)1:
pass
父類(lèi)2:
pass
父類(lèi)3:
pass

            
              子類(lèi)(父類(lèi)1,父類(lèi)2,父類(lèi)3):
    pass

            
          

多繼承的問(wèn)題所在:菱形繼承或者鉆石繼承中的問(wèn)題。
菱形bug:某個(gè)方法在繼承中被多次調(diào)用!

菱形繼承的bug解決:MRO列表和super 類(lèi)

            
              解決辦法:將菱形繼承改變成類(lèi)似于單繼承的方式

當(dāng)我們定義一個(gè)菱形繼承關(guān)系的時(shí)候,程序會(huì)自動(dòng)生成一個(gè)新的MRO列表。

MRO列表: Method Realtion Order  方法關(guān)系列表。

MRO列表的生成的原則:1.子類(lèi)永遠(yuǎn)在父類(lèi)的前面  2.同一等級(jí)的類(lèi),按照子類(lèi)中的繼承順序擺放

super()調(diào)用的時(shí)候,不是查找父類(lèi), 實(shí)際上super是查找MRO列表的上一個(gè)類(lèi)

super()調(diào)用對(duì)象方法的時(shí)候不需要傳入對(duì)象,自動(dòng)傳入

issubclass(子類(lèi),父類(lèi)) :檢測(cè)一個(gè)類(lèi)是否是另一個(gè)類(lèi)的子類(lèi)

如果需要查看mro列表,可以使用類(lèi)名.mro() 方法 或用類(lèi)名.__mro__ 查看


            
          
            
              
                # 繼承又分為 單繼承 和多繼承兩種
              
              
                # 單繼承:一個(gè)類(lèi)只能繼承一個(gè)類(lèi)
              
              
                # 多繼承:一個(gè)類(lèi)可以繼承多個(gè)類(lèi)
              
              
                # 血緣關(guān)系(單繼承)
              
              
                class
              
              
                GrandFather
              
              
                (
              
              
                )
              
              
                :
              
              
    money 
              
                =
              
              
                10000000
              
              
                class
              
              
                Father
              
              
                (
              
              GrandFather
              
                )
              
              
                :
              
              
    money 
              
                =
              
              
                1000
              
              
    face 
              
                =
              
              
                "帥氣的一張臉"
              
              
                class
              
              
                Me
              
              
                (
              
              Father
              
                )
              
              
                :
              
              
                pass
              
              
                # 實(shí)例化
              
              
myself 
              
                =
              
               Me
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              myself
              
                .
              
              money
              
                )
              
              
                print
              
              
                (
              
              myself
              
                .
              
              face
              
                )
              
              
                # 多繼承(社會(huì)角度)
              
              
                class
              
              
                Python
              
              
                (
              
              
                )
              
              
                :
              
              
                def
              
              
                luoji
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "語(yǔ)法階段培養(yǎng)邏輯思路"
              
              
                )
              
              
                class
              
              
                Spider
              
              
                (
              
              
                )
              
              
                :
              
              
                def
              
              
                paqu
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "爬蟲(chóng)階段學(xué)會(huì)了抓自己感興趣的小姐姐圖片"
              
              
                )
              
              
                class
              
              
                Think
              
              
                (
              
              
                )
              
              
                :
              
              
                def
              
              
                fenxi
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "數(shù)據(jù)分析階段我學(xué)會(huì)了數(shù)據(jù)分析科學(xué)的方法"
              
              
                )
              
              
                class
              
              
                MySelf
              
              
                (
              
              Think
              
                ,
              
              Spider
              
                ,
              
              Python
              
                )
              
              
                :
              
              
                pass
              
              
me 
              
                =
              
               MySelf
              
                (
              
              
                )
              
              
me
              
                .
              
              luoji
              
                (
              
              
                )
              
              
me
              
                .
              
              paqu
              
                (
              
              
                )
              
              
me
              
                .
              
              fenxi
              
                (
              
              
                )
              
              
                # 多繼承帶來(lái)的BUG-菱形繼承
              
              
                class
              
              
                Human
              
              
                (
              
              
                )
              
              
                :
              
              
                def
              
              
                say
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "人類(lèi)向天怒吼:人定勝天!"
              
              
                )
              
              
                class
              
              
                Man
              
              
                (
              
              Human
              
                )
              
              
                :
              
              
                def
              
              
                say
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                super
              
              
                (
              
              
                )
              
              
                .
              
              say
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              
                "男人向天怒吼:女孩的心思我不懂~"
              
              
                )
              
              
                class
              
              
                WoMan
              
              
                (
              
              Human
              
                )
              
              
                :
              
              
                def
              
              
                say
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                super
              
              
                (
              
              
                )
              
              
                .
              
              say
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              
                "女人向天怒吼:男人你們能不能別猜我心思了"
              
              
                )
              
              
                class
              
              
                Child
              
              
                (
              
              Man
              
                ,
              
              WoMan
              
                )
              
              
                :
              
              
                def
              
              
                say
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                super
              
              
                (
              
              
                )
              
              
                .
              
              say
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              
                "小孩向天怒吼:哇哇哇~"
              
              
                )
              
              
                # 實(shí)例化
              
              
child 
              
                =
              
               Child
              
                (
              
              
                )
              
              
                # child.say()
              
              
                # mro列表
              
              
                print
              
              
                (
              
              Child
              
                .
              
              mro
              
                (
              
              
                )
              
              
                )
              
              
                # super()  實(shí)際是調(diào)用 mro列表的上一級(jí)關(guān)系
              
            
          

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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 99国产超薄丝袜足j在线观看 | 久久综合给合久久狠狠狠色97 | 伊人久久精品亚洲午夜 | 九月婷婷综合婷婷 | 日本一区二区视频免费播放 | 国产五月色婷婷六月丁香视频 | 亚洲天天做夜夜做天天欢 | 国产欧美日韩精品一区二区三区 | 麻豆国产在线观看一区二区 | 一区二区精品在线观看 | 久久精品中文字幕一区 | 亚洲国产欧美91 | 久久国产影视免费精品 | 四虎午夜 | 久久综合九色综合欧洲色 | 一级毛片成人免费看免费不卡 | 婷婷激情在线 | 国产91免费在线观看 | 亚洲欧美日韩国产综合 | 一级录像| 精品无人区乱码1区2区3区免费 | 国产欧美日韩综合精品一区二区 | 性猛交╳xxx乱大交 性猛交毛片 | 67194老司机精品午夜 | 日韩在线欧美高清一区 | 午夜三级做爰视频在线看 | 色婷婷精品综合久久狠狠 | 亚洲成a人片在线v观看 | 一级a做爰片欧欧美毛片4 | 久久精热 | 久草热草| 四虎国产在线观看 | 日韩在线网 | 99国产精品免费视频观看 | 久久亚洲国产精品五月天 | 全免费a级毛片免费看不卡 全免费a级毛片免费看视频免 | 中文字幕 一区 婷婷 在线 | 尤物久久99热国产综合 | 伊人免费视频 | 牛人盗摄一区二区三区视频 | 久久香蕉国产线看观看8青草 |