Python的hasattr() getattr() setattr() 函式使用方法詳解
Python的hasattr() getattr() setattr() 函式使用方法詳解
(一) hasattr(object,name) 函式
判斷一個物件裡面是否有 name 屬性或者 name 方法,返回 bool 值,如果有 name 屬性(方法)則返回 True ,否則返回 False 。注意: name 需要使用引號括起來。
class function_demo(object): name = 'demo' def run(self): return "hello function" functiondemo = function_demo() print(hasattr(functiondemo, 'name')) #判斷物件是否有 name 屬性,True print(hasattr(functiondemo, "run")) #判斷物件是否有 run 方法,True print(hasattr(functiondemo, "age")) #判斷物件是否有 age 屬性,False
(二) getattr(object,name[,default]) 函式
獲取物件 object 的屬性或者方法,若存在則列印出來;若不存在,則列印預設值,預設值可選。注意:如果返回的是物件的方法,那麼列印的結果是方法的記憶體地址。如果需要執行這個方法,那麼可以在後面新增括號 () 。
class function_demo(object): name = 'demo' def run(self): return "hello function" functiondemo = function_demo() print(getattr(functiondemo, 'name')) #獲取 name 屬性,存在就列印出來--- demo print(getattr(functiondemo, "run")) # 獲取 run 方法,存在列印出方法的記憶體地址 # <bound method function_demo.run of <__main__.function_demo object at 0x006E8A10>> # print(getattr(functiondemo, "age")) # 獲取不存在的屬性,報錯如下: # Traceback (most recent call last): # File "F:/Python/PycharmProjects/Mytest_code/tmp.py", line 11, in <module> # getattr(functiondemo, "age") # AttributeError: 'function_demo' object has no attribute 'age' print(getattr(functiondemo, "age", 18)) #獲取不存在的屬性,返回一個預設值
(三) setattr(object,name,values) 函式
給物件的屬性賦值,若屬性不存在,則先建立再賦值。
class function_demo(object): name = 'demo' def run(self): return "hello function" functiondemo = function_demo() print(hasattr(functiondemo, 'age'))# 判斷 age 屬性是否存在,False setattr(functiondemo, 'age', 18 ) #對 age 屬性進行賦值,無返回值 print(hasattr(functiondemo, 'age')) #再次判斷屬性是否存在,True 綜合使用: class function_demo(object): name = 'demo' def run(self): return "hello function" functiondemo = function_demo() if hasattr(functiondemo, 'addr'):# 先判斷是否存在 addr = getattr(functiondemo, 'addr') print(addr) else: addr = getattr(functiondemo, 'addr', setattr(functiondemo, 'addr', '首都北京')) #addr = getattr(functiondemo, 'addr', '美國紐約') print(addr)
執行結果:首都北京。
下面的示例首先 判斷一個物件的屬性是否存在,若不存在 則 新增該屬性:
class test(): name="xinxiaoting" def run(self): return "HelloWord" t=test() if not hasattr(t,"age"): # getattr(t, "age", setattr(t, "age", "18")) #age屬性不存在時,設定該屬性 setattr(t, "age", "18") print(getattr(t, "age")) #可檢測設定成功
About Me
........................................................................................................................ ● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除 ● 本文在itpub( http://blog.itpub.net/26736162 )、部落格園( http://www.cnblogs.com/lhrbest )和個人weixin公眾號( xiaomaimiaolhr )上有同步更新 ● 本文itpub地址: http://blog.itpub.net/26736162 ● 本文部落格園地址: http://www.cnblogs.com/lhrbest ● 本文pdf版、個人簡介及小麥苗雲盤地址: http://blog.itpub.net/26736162/viewspace-1624453/ ● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/ ● DBA寶典今日頭條號地址: ........................................................................................................................ ● QQ群號: 230161599 (滿) 、618766405 ● weixin群:可加我weixin,我拉大家進群,非誠勿擾 ● 聯絡我請加QQ好友 ( 646634621 ) ,註明新增緣由 ● 於 2019-05-01 06:00 ~ 2019-05-30 24:00 在魔都完成 ● 最新修改時間:2019-05-01 06:00 ~ 2019-05-30 24:00 ● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解 ● 版權所有,歡迎分享本文,轉載請保留出處 ........................................................................................................................ ● 小麥苗的微店 : ● 小麥苗出版的資料庫類叢書 : http://blog.itpub.net/26736162/viewspace-2142121/ ● 小麥苗OCP、OCM、高可用網路班 : http://blog.itpub.net/26736162/viewspace-2148098/ ● 小麥苗騰訊課堂主頁 : https://lhr.ke.qq.com/ ........................................................................................................................ 使用 weixin客戶端 掃描下面的二維碼來關注小麥苗的weixin公眾號( xiaomaimiaolhr )及QQ群(DBA寶典)、新增小麥苗weixin, 學習最實用的資料庫技術。
........................................................................................................................ |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2643143/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python hasattr() 函式 // python中hasattr()、getattr()、setattr()函式的使用Python函式
- python 中的getattr(),setattr(),hasattr()的方法Python
- python 內建函式setattr() getattr()Python函式
- python __setattr__、__getattr__、__getattribute__全面詳解Python
- Python getattr() 函式Python函式
- Python的魔法函式系列 __getattrbute__和__getattr__Python函式
- 詳解MySQL中的SQRT函式的使用方法MySql函式
- Python中的函式詳解Python函式
- Python函式每日一講 - 一文讓你徹底明白hasattr函式的使用Python函式
- python socket函式詳解Python函式
- 詳解Python的函式巢狀Python函式巢狀
- Python中Numpy函式詳解Python函式
- Python中zip函式的使用方法Python函式
- Python魔法方法__getattr__和__getattribute__詳解Python
- Python魔術方法 __getattr__、__getattribute__使用詳解Python
- Python列表中set函式的使用方法!Python函式
- python 中求和函式 sum詳解Python函式
- Python正規表示式 findall函式詳解Python函式
- Python正規表示式常用函式詳解Python函式
- python IO模組【二】:open函式詳解Python函式
- Python隨機函式random使用詳解Python隨機函式random
- Python中enumerate函式用法詳解Python函式
- python基礎-內建函式詳解Python函式
- python函式星號引數詳解Python函式
- round函式與trunc函式的使用方法函式
- python函式每日一講 - float函式型別轉換詳解Python函式型別
- 尤拉函式詳解函式
- malloc函式詳解函式
- kill() 函式詳解函式
- ioctl()函式詳解函式
- gluLookAt 函式詳解函式
- fopencookie函式詳解Cookie函式
- TypeScript中的函式詳解TypeScript函式
- Python中的56個內建函式詳解(七)Python函式
- Python區域性函式及用法詳解Python函式
- python的os模組的常見函式及用途詳解Python函式
- 詳解Java函式式介面Java函式
- python正規表示式函式match()和search()的區別詳解Python函式