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

Python學習筆記之getattr和hasattr用法示例詳解

 更新時間:2025年08月12日 08:31:18   作者:一只野生的善逸  
在Python中,hasattr()、getattr()和setattr()是一組內(nèi)置函數(shù),用于對對象的屬性進行操作和查詢,這篇文章主要介紹了Python學習筆記之getattr和hasattr用法的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

1.getattr用法詳解

1.1 基本作用

getattr(object, name[, default])
用于動態(tài)獲取對象的屬性值。

  • object:要操作的對象。
  • name:屬性名(字符串)。
  • default(可選):如果屬性不存在,返回的默認值(否則會拋異常)。

1.2 示例

class Person:
    name = "Alice"
    age = 20

person = Person()

print(getattr(person, "name"))         # 輸出: Alice
print(getattr(person, "age"))          # 輸出: 20
print(getattr(person, "gender", "女")) # 屬性不存在,輸出: 女

1.3 原理

  • getattr 實際上會調(diào)用對象的 __getattribute__ 方法。
  • 如果找不到屬性且提供了 default,則返回 default,否則拋出 AttributeError

2.hasattr用法詳解

2.1 基本作用

hasattr(object, name)
用于判斷對象是否有某個屬性。

  • object:要檢查的對象。
  • name:屬性名(字符串)。

返回值:

  • 存在則返回 True,否則返回 False。

2.2 示例

class Person:
    name = "Alice"

person = Person()

print(hasattr(person, "name"))      # 輸出: True
print(hasattr(person, "age"))       # 輸出: False

2.3 原理

  • hasattr 實際上會嘗試用 getattr(object, name) 獲取屬性。
  • 如果沒有拋出 AttributeError,就返回 True,否則為 False。

3. 二者區(qū)別與聯(lián)系

3.1 聯(lián)系

  • 都用于動態(tài)操作對象屬性,底層都依賴于魔法方法 __getattribute__。

3.2 區(qū)別

  • getattr 用于取值,可以設(shè)置默認值。
  • hasattr 用于判斷屬性是否存在,不取值。

3.3 注意

?? 注意:hasattr 內(nèi)部實際上是 try-except 機制,屬性訪問可能觸發(fā)屬性的 getter 或 property 代碼塊!

4. 實用技巧與注意事項

4.1 實用技巧

  • getattr 動態(tài)讀取屬性,適合反射場景(如 ORM、插件、配置讀取等)。
  • hasattr 判斷屬性是否存在,避免代碼報錯。

4.2 注意事項

  • 如果屬性不存在且沒有傳遞 default,getattr 會直接報錯。
  • hasattr 訪問屬性時,帶有副作用時要小心(比如 property/自定義 __getattr__)。

5. 綜合示例

5.1 示例代碼

class Demo:
    def __init__(self):
        self.x = 10
    @property
    def y(self):
        print("訪問了 y")
        return 20

d = Demo()
print(hasattr(d, 'x'))  # True
print(hasattr(d, 'y'))  # True,同時會打印: 訪問了 y
print(getattr(d, 'y'))  # 訪問了 y,輸出: 20
print(getattr(d, 'z', '不存在'))  # 輸出: 不存在

6. 總結(jié)表

方法作用返回值不存在時行為
getattr獲取屬性值屬性值/默認值拋 AttributeError/返回默認
hasattr判斷屬性是否存在True/False返回 False

到此這篇關(guān)于Python學習筆記之getattr和hasattr用法的文章就介紹到這了,更多相關(guān)Python getattr和hasattr用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Pandas中Concat與Append的實現(xiàn)與區(qū)別小結(jié)

    Pandas中Concat與Append的實現(xiàn)與區(qū)別小結(jié)

    本文主要介紹了Pandas中Concat與Append的實現(xiàn)與區(qū)別小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-11-11
  • Django實現(xiàn)后臺上傳并顯示圖片功能

    Django實現(xiàn)后臺上傳并顯示圖片功能

    這篇文章主要介紹了Django實現(xiàn)后臺上傳并顯示圖片功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Python多行輸入程序?qū)嵗a及擴展

    Python多行輸入程序?qū)嵗a及擴展

    我們都知道Python內(nèi)置方法input只能輸入一行內(nèi)容,我們今天來實現(xiàn)輸入多行文本功能,這篇文章主要給大家介紹了關(guān)于Python多行輸入程序的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • python區(qū)塊鏈創(chuàng)建多個交易教程

    python區(qū)塊鏈創(chuàng)建多個交易教程

    這篇文章主要為大家介紹了python區(qū)塊鏈創(chuàng)建多個交易的實現(xiàn)示例教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Python?pygame繪制游戲圖像

    Python?pygame繪制游戲圖像

    這篇文章主要介紹了Python?pygame繪制游戲圖像,文章圍繞主題展開pygame模塊完成飛機大戰(zhàn)游戲的實戰(zhàn)開發(fā)的案例詳情,需要的朋友可以參考一下
    2022-08-08
  • 淺談編碼,解碼,亂碼的問題

    淺談編碼,解碼,亂碼的問題

    下面小編就為大家?guī)硪黄獪\談編碼,解碼,亂碼的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • Numpy廣播域的理解

    Numpy廣播域的理解

    本文主要介紹了Numpy廣播域的理解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • Python OS模塊中常用的文件和目錄操作方法

    Python OS模塊中常用的文件和目錄操作方法

    在Python編程中,os模塊提供了用于與操作系統(tǒng)交互的功能,其中,文件和目錄操作是os模塊的核心功能之一,本文將詳細介紹os模塊中常用的文件和目錄操作方法,需要的朋友可以參考下
    2026-03-03
  • 使用Python腳本生成隨機IP的簡單方法

    使用Python腳本生成隨機IP的簡單方法

    這篇文章主要介紹了使用Python腳本生成隨機IP的簡單方法,并且可以自己設(shè)定IP數(shù)值范圍,需要的朋友可以參考下
    2015-07-07
  • python實現(xiàn)將Excel文件轉(zhuǎn)換為JSON文件

    python實現(xiàn)將Excel文件轉(zhuǎn)換為JSON文件

    在數(shù)據(jù)處理和分析中,Excel和JSON是兩種常見的數(shù)據(jù)格式,本文將詳細介紹如何使用Python將Excel文件轉(zhuǎn)換為JSON文件,我們將使用pandas庫,這是一個強大的數(shù)據(jù)分析工具,能夠方便地讀取和處理各種數(shù)據(jù)格式,需要的朋友可以參考下
    2024-07-07

最新評論

博客| 崇左市| 瑞金市| 布尔津县| 沙洋县| 安乡县| 微山县| 榆林市| 灌南县| 宣恩县| 弋阳县| 高安市| 西充县| 上高县| 资中县| 安泽县| 宜黄县| 郓城县| 托克托县| 东乌珠穆沁旗| 白水县| 宜川县| 沿河| 广河县| 蒙城县| 阿城市| 色达县| 神池县| 永泰县| 罗山县| 台北市| 金门县| 龙海市| 湘西| 浦东新区| 华安县| 舒兰市| 武川县| 尖扎县| 清丰县| 丘北县|