中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

hasattr()、getattr() 和setattr() 函數怎么在Python中使用

發布時間:2021-03-26 17:15:21 來源:億速云 閱讀:118 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關hasattr()、getattr() 和setattr() 函數怎么在Python中使用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

hasattr(object, name)

判斷一個對象里面是否有name屬性或者name方法,返回BOOL值,有name特性返回True, 否則返回False。

需要注意的是name要用括號括起來

 >>> class test():
 ...   name="xiaohua"
 ...   def run(self):
 ...       return "HelloWord"
 ...
 >>> t=test()
 >>> hasattr(t, "name") #判斷對象有name屬性
 True
 >>> hasattr(t, "run") #判斷對象有run方法
 True
 >>>

getattr(object, name[,default])

獲取對象object的屬性或者方法,如果存在打印出來,如果不存在,打印出默認值,默認值可選。

需要注意的是,如果是返回的對象的方法,返回的是方法的內存地址,如果需要運行這個方法,可以在后面添加一對括號。

 >>> class test():
 ...   name="xiaohua"
 ...   def run(self):
 ...       return "HelloWord"
 ...
 >>> t=test()
 >>> getattr(t, "name") #獲取name屬性,存在就打印出來。
 'xiaohua'
 >>> getattr(t, "run") #獲取run方法,存在就打印出方法的內存地址。
 <bound method test.run of <__main__.test instance at 0x0269C878>>
 >>> getattr(t, "run")() #獲取run方法,后面加括號可以將這個方法運行。
 'HelloWord'
>>> getattr(t, "age") #獲取一個不存在的屬性。
 Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
 AttributeError: test instance has no attribute 'age'
 >>> getattr(t, "age","18") #若屬性不存在,返回一個默認值。
 '18'
 >>>

setattr(object, name, values)

給對象的屬性賦值,若屬性不存在,先創建再賦值。

 >>> class test():
 ...   name="xiaohua"
 ...   def run(self):
 ...       return "HelloWord"
 ...
 >>> t=test()
 >>> hasattr(t, "age")  #判斷屬性是否存在
 False
 >>> setattr(t, "age", "18")  #為屬相賦值,并沒有返回值
 >>> hasattr(t, "age")  #屬性存在了
 True
 >>>

一種綜合的用法是:判斷一個對象的屬性是否存在,若不存在就添加該屬性。

 >>> class test():
 ...   name="xiaohua"
 ...   def run(self):
 ...       return "HelloWord"
 ...
 >>> t=test()
 >>> getattr(t, "age")  #age屬性不存在
 Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
 AttributeError: test instance has no attribute 'age'
 >>> getattr(t, "age", setattr(t, "age", "18")) #age屬性不存在時,設置該屬性
 '18'
 >>> getattr(t, "age") #可檢測設置成功
 '18'
 >>>

看完上述內容,你們對hasattr()、getattr() 和setattr() 函數怎么在Python中使用有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

云霄县| 麦盖提县| 孝感市| 鸡泽县| 屏东县| 五华县| 杨浦区| 元阳县| 新晃| 五大连池市| 洞头县| 柳江县| 扎囊县| 嘉义县| 寿阳县| 嘉兴市| 阿拉善左旗| 长垣县| 岑巩县| 三穗县| 南乐县| 博爱县| 长海县| 呼伦贝尔市| 稷山县| 达拉特旗| 循化| 永宁县| 应城市| 定远县| 屏东市| 铜梁县| 锡林浩特市| 涞源县| 惠东县| 房产| 汉阴县| 东丰县| 浦北县| 深州市| 宁国市|