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

Python的getattr函數(shù)方法學(xué)習(xí)使用示例

 更新時間:2022年08月09日 14:19:20   作者:waws520  
這篇文章主要為大家介紹了Python的getattr方法學(xué)習(xí)使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

正文

__getattr__函數(shù)的作用: 如果屬性查找(attribute lookup)在實例以及對應(yīng)的類中(通過__dict__)失敗, 那么會調(diào)用到類的__getattr__函數(shù);

如果沒有定義這個函數(shù),那么拋出AttributeError異常。由此可見,__getattr__一定是作用于屬性查找的最后一步

舉個栗子:

class A(object):
    def __init__(self, a, b):
        self.a1 = a
        self.b1 = b
        print('init')
    def mydefault(self, *args):
        print('default:' + str(args[0]))
    def __getattr__(self, name):
        print("other fn:", name)
        return self.mydefault
a1 = A(10, 20)
a1.fn1(33)
a1.fn2('hello')

運行結(jié)果:

init
other fn: fn1
default:33
other fn: fn2
default:hello

第16行調(diào)用fn1屬性時,查找不到次屬性,程序調(diào)用__getattr__方法

用__getattr__方法可以處理調(diào)用屬性異常

class Student(object):
    def __getattr__(self, attrname):
        if attrname == "age":
            return 'age:40'
        else:
            raise AttributeError(attrname)
x = Student()
print(x.age)  # 40
print(x.name)

這里定義一個Student類和實例x,并沒有屬性age,當(dāng)執(zhí)行x.age,就調(diào)用_getattr_方法動態(tài)創(chuàng)建一個屬性,執(zhí)行x.name時,__getattr__方法沒有對其處理,拋出異常

age:40
  File "XXXX.py", line 10, in <module>
    print(x.name)
  File "XXXX.py", line 6, in __getattr__
    raise AttributeError(attrname)
AttributeError: name

下面展示一個_getattr_經(jīng)典應(yīng)用的例子,可以調(diào)用dict的鍵值對

class ObjectDict(dict):
    def __init__(self, *args, **kwargs):
        super(ObjectDict, self).__init__(*args, **kwargs)
    def __getattr__(self, name):
        value = self[name]
        if isinstance(value, dict):
            value = ObjectDict(value)
        return value
if __name__ == '__main__':
    od = ObjectDict(asf = {'a': 1}, d = True)
    print(od.asf, od.asf.a)  # {'a': 1} 1
    print(od.d)  # True

以上就是Python的getattr方法學(xué)習(xí)使用示例的詳細(xì)內(nèi)容,更多關(guān)于Python getattr方法的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • flask項目集成swagger的方法

    flask項目集成swagger的方法

    這篇文章主要介紹了flask項目集成swagger的方法,幫助大家更好的理解和使用flask框架,感興趣的朋友可以了解下
    2020-12-12
  • PyQt5+serial模塊實現(xiàn)一個串口小工具

    PyQt5+serial模塊實現(xiàn)一個串口小工具

    這篇文章主要為大家詳細(xì)介紹了如何利用PyQt5和serial模塊實現(xiàn)一個簡單的串口小工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-01-01
  • 利用Python的Django框架中的ORM建立查詢API

    利用Python的Django框架中的ORM建立查詢API

    這篇文章主要介紹了利用Python的Django框架中的ORM建立查詢API,對Managers和QuerySets進行了著重介紹,需要的朋友可以參考下
    2015-04-04
  • Django 路由層URLconf的實現(xiàn)

    Django 路由層URLconf的實現(xiàn)

    這篇文章主要介紹了Django 路由層URLconf的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • python機器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)(二)

    python機器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)(二)

    這篇文章主要為大家詳細(xì)介紹了python機器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)第二篇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 圖文詳解Python如何導(dǎo)入自己編寫的py文件

    圖文詳解Python如何導(dǎo)入自己編寫的py文件

    有時候自己寫了一個py文件,想要把它導(dǎo)入到另一個py文件里面,所以下面這篇文章主要給大家介紹了關(guān)于Python如何導(dǎo)入自己編寫的py文件的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • Python圖像處理庫PIL中圖像格式轉(zhuǎn)換的實現(xiàn)

    Python圖像處理庫PIL中圖像格式轉(zhuǎn)換的實現(xiàn)

    這篇文章主要介紹了Python圖像處理庫PIL中圖像格式轉(zhuǎn)換的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Python編程中Python與GIL互斥鎖關(guān)系作用分析

    Python編程中Python與GIL互斥鎖關(guān)系作用分析

    GIL互斥鎖用來保護Python世界里的對象,防止同一時刻多個線程執(zhí)行Python字節(jié)碼,確保線程安全,但也導(dǎo)致Python線程無法利用多核CPU優(yōu)勢,本文來探討Python將來是否有可能去除GIL
    2021-09-09
  • Python繪制散點密度圖的三種方式詳解

    Python繪制散點密度圖的三種方式詳解

    散點密度圖是在散點圖的基礎(chǔ)上,計算了每個散點周圍分布了多少其他的點,并通過顏色表現(xiàn)出來。本文主要介紹了Python繪制散點密度圖的三種方式,需要的可以參考下
    2022-06-06
  • Python實現(xiàn)將Excel內(nèi)容插入到Word模版中

    Python實現(xiàn)將Excel內(nèi)容插入到Word模版中

    前段時間因為需要處理一大堆驗收單,都是一些簡單的復(fù)制粘貼替換工作,于是就想到用python進行處理。本文分享了用python將excel文件單元格內(nèi)容插入到word模版中并保存為新文件的辦法,希望對大家有所幫助
    2023-03-03

最新評論

仁化县| 长沙县| 陆川县| 锦州市| 来凤县| 台北县| 客服| 元朗区| 武宁县| 淮南市| 泸定县| 泾川县| 东光县| 六盘水市| 伊川县| 普安县| 葫芦岛市| 崇仁县| 寿光市| 休宁县| 通州区| 加查县| 诸暨市| 江油市| 陆丰市| 明光市| 抚松县| 洪湖市| 轮台县| 元朗区| 汕尾市| 勐海县| 简阳市| 厦门市| 江山市| 西乡县| 临颍县| 东安县| 大关县| 洪江市| 高邑县|