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

Python中類的mro與繼承關(guān)系詳解

 更新時間:2022年07月28日 08:40:50   作者:??宿者朽命???  
這篇文章主要介紹了Python中類的mro與繼承關(guān)系,文章圍繞主題展開初步認識mro的解析順序,具有一定的參考價值。需要的朋友可以參考一下

前言

版本:

  • windows 10.0
  • python 3.8

Python數(shù)字比較與類結(jié)構(gòu)中有簡略提到類,那么什么是類呢?

在python中定義一個類很簡單,使用關(guān)鍵字class就能實現(xiàn)。

class Animal:
    pass

如何使用它,在類結(jié)構(gòu)中稱作實例化。

animal = Animal()

這樣,就有了一個Animal的實例。

繼承

類的其中一個特性就是能夠繼承,把Animal類豐富下,將其作為基類:

class Animal:
    property_ = '能夠思考'

    def __init__(self, name, age, value):
        self.name_ = name
        self.age_ = age
        self.val_ = val

在這里面,property_作為類屬性,無需實例化就能使用,而__init__下的self.name_, self.age_和self.val_需要在實例化后才能使用,且這里__init__需要傳入?yún)?shù),其中self用來指代類本身,不作為傳參值。

print(Animal.property_)  # 輸出:能夠思考
print(Animal.name_)   # 引發(fā)AttributeError錯誤

a = Animal('阿黑', 12, 70)
print(a.property_)  # 能夠思考
print(a.name_)  # 阿黑
print(a.age_)  # 12
print(a.val_)  # 70
復(fù)制代碼

Animal類可以正常使用,再寫一個Monkey類,繼承Animal類。

class Monkey(Animal):
    pass

Monkey后面調(diào)用Animal類,繼承了其屬性及方法,也可通過實例化,查看Monkey實例的屬性。

print(Monkey.property_)  # 類屬性: 能夠思考

m = Monkey('阿黃', 15, 40)
print(m.name_)  # 阿黃
print(m.age_)  # 15
print(m.val_)  # 40

當(dāng)然也能繼承類,對其已有的方法進行改寫,這里再定義一個Cat類。

class Cat(Animal):

    def __init__(self, name, age):
        self.name_ = '我是' + name
        self.age_ = age

Cat類繼承后對__init__進行了改寫,修改了name_,并且刪除了val_。

print(Cat.property_)  # 類屬性:能夠思考

c = Cat('小花', 6)
print(c.name_)  # 我是小花
print(c.age_)  # 6
print(c.val_)  # 引發(fā)AttributeError報錯

對于類屬性還是能使用,不見的val_再調(diào)用就會引發(fā)報錯。

除此之外,如果想在保留基類的屬性基礎(chǔ)上增加屬性,可以用super()進行處理:

class Fish(Animal):

    def __init__(self, name, age, val, env):
        super().__init__(name, age, val)
        self.env_ = env

在實例化Fish類時,需要多傳入一個生活環(huán)境env參數(shù):

f = Fish('小鯉', 2, 57, '水里')
print(f.env_)  # 水里

mro

mro的含義為方法解析順序,在類的繼承中,明白解析順序是尤為重要的,對于上述幾個類可以簡單看下mro的順序情況。

Animal.mro()
# [__main__.Animal, object]

Monkey.mro()
# [__main__.Monkey, __main__.Animal, object]

Cat.mro()
# [__main__.Cat, __main__.Animal, object]

Fish.mro()
# [__main__.Fish, __main__.Animal, object]

mro的解析順序是從左至右,越在左邊優(yōu)先級越高,可以看到最先解析的是當(dāng)前類本身,再是繼承的上一個類,最后是原生object類。上述羅列的所有類,繼承關(guān)系都很簡單,mro的順序也簡單明了。

總結(jié)

到此這篇關(guān)于Python中類的mro與繼承關(guān)系詳解的文章就介紹到這了,更多相關(guān)Python mro內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python模擬伯努利試驗和二項分布代碼實例

    Python模擬伯努利試驗和二項分布代碼實例

    這篇文章主要介紹了Python模擬伯努利試驗和二項分布代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • Python numpy 提取矩陣的某一行或某一列的實例

    Python numpy 提取矩陣的某一行或某一列的實例

    下面小編就為大家分享一篇Python numpy 提取矩陣的某一行或某一列的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • pytorch masked_fill報錯的解決

    pytorch masked_fill報錯的解決

    今天小編就為大家分享一篇pytorch masked_fill報錯的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python實現(xiàn)圖像最近鄰插值

    python實現(xiàn)圖像最近鄰插值

    這篇文章主要介紹了python實現(xiàn)圖像最近鄰插值,圖像插值技術(shù)即Nearest?Neighbour?Interpolate是圖像超分辨率領(lǐng)域的重要研究方法之一,其目的是根據(jù)已有的低分辨率圖像,獲得高分辨率圖像,下面來看看文章具體的敘述,需要的朋友可以參考一下
    2022-03-03
  • python requests response值判斷方式

    python requests response值判斷方式

    這篇文章主要介紹了python requests response值判斷方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Selenium中免登錄的實現(xiàn)方法option詳解

    Selenium中免登錄的實現(xiàn)方法option詳解

    在selenium中有很多種可以實現(xiàn)網(wǎng)站的免登錄,option就是其中的一種做法,這篇文章主要介紹了Selenium中免登錄的實現(xiàn)方法option,需要的朋友可以參考下
    2022-12-12
  • python中的正則表達式,貪婪匹配與非貪婪匹配方式

    python中的正則表達式,貪婪匹配與非貪婪匹配方式

    這篇文章主要介紹了python中的正則表達式,貪婪匹配與非貪婪匹配方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Python命令行解析器argparse詳解

    Python命令行解析器argparse詳解

    大家好,本篇文章主要講的是Python命令行解析器argparse詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Python動態(tài)生成多維數(shù)組的方法示例

    Python動態(tài)生成多維數(shù)組的方法示例

    這篇文章主要介紹了Python動態(tài)生成多維數(shù)組的方法,涉及Python數(shù)組動態(tài)遍歷、添加、打印等相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • Python Barbershop實現(xiàn)照片換發(fā)型功能

    Python Barbershop實現(xiàn)照片換發(fā)型功能

    這篇文章主要為大家介紹了一個開源項目(Barbershop),可以將照片中的發(fā)型更換成另一個,文中實現(xiàn)過程講解詳細,感興趣的可以學(xué)習(xí)一下
    2022-01-01

最新評論

玛曲县| 左贡县| 安吉县| 南岸区| 沈阳市| 乐亭县| 寻甸| 慈溪市| 珠海市| 南丹县| 界首市| 大埔区| 宣汉县| 丹江口市| 栾川县| 宜阳县| 荃湾区| 昌邑市| 洛扎县| 富锦市| 靖西县| 邵东县| 科技| 大竹县| 怀柔区| 明光市| 阆中市| 天津市| 错那县| 财经| 大洼县| 麻江县| 波密县| 芜湖县| 雅安市| 理塘县| 裕民县| 建湖县| 彭州市| 英吉沙县| 科技|