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

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

python_單繼承與多繼承

系統 1815 0

單繼承與多繼承?

單繼承:一個類只能繼承一個父類的方式。
多繼承:一個類可以繼承多個父類的方式。

單繼承:(生物角度)
人類->哺乳類動物->動物->生物->有機物…

多繼承:(社會角度)

            
              舞蹈老師(教舞蹈)       體育老師(運動)    爸爸(帥氣)  媽媽(打掃衛生)

    我(舞蹈,運動,帥氣,打掃衛生)

            
          

單繼承案例:
父類:
pass

            
              子類(父類):
    pass

            
          

多繼承案例:
父類1:
pass
父類2:
pass
父類3:
pass

            
              子類(父類1,父類2,父類3):
    pass

            
          

多繼承的問題所在:菱形繼承或者鉆石繼承中的問題。
菱形bug:某個方法在繼承中被多次調用!

菱形繼承的bug解決:MRO列表和super 類

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

當我們定義一個菱形繼承關系的時候,程序會自動生成一個新的MRO列表。

MRO列表: Method Realtion Order  方法關系列表。

MRO列表的生成的原則:1.子類永遠在父類的前面  2.同一等級的類,按照子類中的繼承順序擺放

super()調用的時候,不是查找父類, 實際上super是查找MRO列表的上一個類

super()調用對象方法的時候不需要傳入對象,自動傳入

issubclass(子類,父類) :檢測一個類是否是另一個類的子類

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


            
          
            
              
                # 繼承又分為 單繼承 和多繼承兩種
              
              
                # 單繼承:一個類只能繼承一個類
              
              
                # 多繼承:一個類可以繼承多個類
              
              
                # 血緣關系(單繼承)
              
              
                class
              
              
                GrandFather
              
              
                (
              
              
                )
              
              
                :
              
              
    money 
              
                =
              
              
                10000000
              
              
                class
              
              
                Father
              
              
                (
              
              GrandFather
              
                )
              
              
                :
              
              
    money 
              
                =
              
              
                1000
              
              
    face 
              
                =
              
              
                "帥氣的一張臉"
              
              
                class
              
              
                Me
              
              
                (
              
              Father
              
                )
              
              
                :
              
              
                pass
              
              
                # 實例化
              
              
myself 
              
                =
              
               Me
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              myself
              
                .
              
              money
              
                )
              
              
                print
              
              
                (
              
              myself
              
                .
              
              face
              
                )
              
              
                # 多繼承(社會角度)
              
              
                class
              
              
                Python
              
              
                (
              
              
                )
              
              
                :
              
              
                def
              
              
                luoji
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "語法階段培養邏輯思路"
              
              
                )
              
              
                class
              
              
                Spider
              
              
                (
              
              
                )
              
              
                :
              
              
                def
              
              
                paqu
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "爬蟲階段學會了抓自己感興趣的小姐姐圖片"
              
              
                )
              
              
                class
              
              
                Think
              
              
                (
              
              
                )
              
              
                :
              
              
                def
              
              
                fenxi
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "數據分析階段我學會了數據分析科學的方法"
              
              
                )
              
              
                class
              
              
                MySelf
              
              
                (
              
              Think
              
                ,
              
              Spider
              
                ,
              
              Python
              
                )
              
              
                :
              
              
                pass
              
              
me 
              
                =
              
               MySelf
              
                (
              
              
                )
              
              
me
              
                .
              
              luoji
              
                (
              
              
                )
              
              
me
              
                .
              
              paqu
              
                (
              
              
                )
              
              
me
              
                .
              
              fenxi
              
                (
              
              
                )
              
              
                # 多繼承帶來的BUG-菱形繼承
              
              
                class
              
              
                Human
              
              
                (
              
              
                )
              
              
                :
              
              
                def
              
              
                say
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "人類向天怒吼:人定勝天!"
              
              
                )
              
              
                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
              
              
                (
              
              
                "小孩向天怒吼:哇哇哇~"
              
              
                )
              
              
                # 實例化
              
              
child 
              
                =
              
               Child
              
                (
              
              
                )
              
              
                # child.say()
              
              
                # mro列表
              
              
                print
              
              
                (
              
              Child
              
                .
              
              mro
              
                (
              
              
                )
              
              
                )
              
              
                # super()  實際是調用 mro列表的上一級關系
              
            
          

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产麻豆精品手机在线观看 | 中文字幕在线看视频一区二区三区 | 亚洲美女免费视频 | 性欧美xo视频在线观看 | 成人免费视频一区二区三区 | 成人不卡视频 | 欧美洲精品亚洲精品中文字幕 | 欧美视频在线观在线看 | 欧美日韩成人高清色视频 | 九九影院理论片私人影院 | 99国产精品免费视频观看 | 狠狠色丁香婷婷综合激情 | 国产精品欧美久久久久天天影视 | 日韩欧美在线观看 | www国产精品| 欧美巨大xxxx做受孕妇视频 | 国产精品福利在线观看入口 | 欧美日韩成人在线视频 | 国产精品一国产精品免费 | 亚洲视频一区在线播放 | 天天干天天操天天摸 | 日韩中文字幕精品免费一区 | 国产免费一区二区三区在线观看 | 99热久久精品最新 | 久久天天操 | 日韩欧美伊人久久大香线蕉 | 无毒不卡在线观看 | 亚洲精品一区久久狠狠欧美 | 日日摸日日添日日透 | 青青青国产在线手机免费观看 | 成人69视频| 欧美精品a毛片免费观看 | 亚洲欧美综合 | 人成精品视频三区二区一区 | 国产大尺度福利视频在线 | a网在线 | 奇米在线影视 | 特黄十八岁大片 | 人.成午夜 | 国产草草 | 欧美日韩视频精品一区二区 |