国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > hasattr()、getattr()、setattr()函數的使用

hasattr()、getattr()、setattr()函數的使用

來源:千鋒教育
發布人:syq
時間: 2022-09-07 17:19:00 1662542340

  在閱讀高手寫的代碼時,有很多簡寫的形式,如果沒有見過還真的看不太懂是什么意思,其中一個比較常用的就是getattr()用來調用一個類中的變量或者方法,相關聯的hasattr()、getattr()、setattr()函數的使用也一并學習了一下;

setattr()函數的使用

  1. hasattr(object, name)

  判斷object對象中是否存在name屬性,當然對于python的對象而言,屬性包含變量和方法;有則返回True,沒有則返回False;需要注意的是name參數是string類型,所以不管是要判斷變量還是方法,其名稱都以字符串形式傳參;getattr和setattr也同樣;

011

  2. getattr(object, name[, default])

  獲取object對象的屬性的值,如果存在則返回屬性值,如果不存在分為兩種情況,一種是沒有default參數時,會直接報錯;給定了default參數,若對象本身沒有name屬性,則會返回給定的default值;如果給定的屬性name是對象的方法,則返回的是函數對象,需要調用函數對象來獲得函數的返回值;調用的話就是函數對象后面加括號,如func之于func();

012

  另外還需要注意,如果給定的方法func()是實例函數,則不能寫getattr(A, ‘func’)(),因為fun()是實例函數的話,是不能用A類對象來調用的,應該寫成getattr(A(), ‘func’)();實例函數和類函數的區別可以簡單的理解一下,實例函數定義時,直接def func(self):,這樣定義的函數只能是將類實例化后,用類的實例化對象來調用;而類函數定義時,需要用@classmethod來裝飾,函數默認的參數一般是cls,類函數可以通過類對象來直接調用,而不需要對類進行實例化;

  3. setattr(object, name, value)

  給object對象的name屬性賦值value,如果對象原本存在給定的屬性name,則setattr會更改屬性的值為給定的value;如果對象原本不存在屬性name,setattr會在對象中創建屬性,并賦值為給定的value;

013

  一般先判斷對象中是否存在某屬性,如果存在則返回;如果不存在,則給對象增加屬性并賦值;很簡單的if-else判斷:

014

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT