欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺析Python中的getattr(),setattr(),delattr(),hasattr()

 更新時(shí)間:2016年06月14日 13:54:42   作者:很多不懂呀。。  
這篇文章主要介紹了Python中的getattr(),setattr(),delattr(),hasattr() 的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下

getattr()函數(shù)是Python自省的核心函數(shù),具體使用大體如下:

獲取對(duì)象引用getattr

Getattr用于返回一個(gè)對(duì)象屬性,或者方法

class A: 
def __init__(self): 
self.name = 'zhangjing' 
   #self.age=''
def method(self): 
print"method print" 
Instance = A() 
print getattr(Instance , 'name, 'not find') #如果Instance 對(duì)象中有屬性name則打印self.name的值,否則打印'not find'
print getattr(Instance , 'age', 'not find') #如果Instance 對(duì)象中有屬性age則打印self.age的值,否則打印'not find'
print getattr(a, 'method', 'default') 
#如果有方法method,否則打印其地址,否則打印default 
print getattr(a, 'method', 'default')() 
#如果有方法method,運(yùn)行函數(shù)并打印None否則打印default 

注:使用getattr可以輕松實(shí)現(xiàn)工廠模式。

例:一個(gè)模塊支持html、text、xml等格式的打印,根據(jù)傳入的formate參數(shù)的不同,調(diào)用不同的函數(shù)實(shí)現(xiàn)幾種格式的輸出

import statsout 
def output(data, format="text"): 
output_function = getattr(statsout, "output_%s" % format) 
return output_function(data) 
setattr(object, name, value)
This is the counterpart of getattr(). The arguments
are an object, a string and an arbitrary value. The string may name an existing
attribute or a new attribute. The function assigns the value to the attribute,
provided the object allows it. For example, setattr(x,
'foobar', 123) is equivalent to
x.foobar = 123.

這是相對(duì)應(yīng)的getattr()。參數(shù)是一個(gè)對(duì)象,一個(gè)字符串和一個(gè)任意值。字符串可能會(huì)列出一個(gè)現(xiàn)有的屬性或一個(gè)新的屬性。這個(gè)函數(shù)將值賦給屬性的。該對(duì)象允許它提供。例如,setattr(x,“foobar”,123)相當(dāng)于x.foobar = 123。

delattr(object, name)

This is a relative of setattr(). The arguments are
an object and a string. The string must be the name of one of the object's
attributes. The function deletes the named attribute, provided the object allows
it. For example, delattr(x, 'foobar') is
equivalent to del x.foobar.

與setattr()相關(guān)的一組函數(shù)。參數(shù)是由一個(gè)對(duì)象(記住python中一切皆是對(duì)象)和一個(gè)字符串組成的。string參數(shù)必須是對(duì)象屬性名之一。該函數(shù)刪除該obj的一個(gè)由string指定的屬性。delattr(x, 'foobar')=del x.foobar

•hasattr用于確定一個(gè)對(duì)象是否具有某個(gè)屬性。

語(yǔ)法:

hasattr(object, name) -> bool

判斷object中是否有name屬性,返回一個(gè)布爾值。

>>> li=["zhangjing","zhangwei"]
>>> getattr(li,"pop")
<built-in method pop of list object at 0x011DF6C0>
>>> li.pop
<built-in method pop of list object at 0x011DF6C0>
>>> li.pop()
'zhangwei'
>>> getattr(li,"pop")()
'zhangjing'
>>>getattr(li, "append")("Moe") 

相關(guān)文章

  • Python Pygame實(shí)戰(zhàn)之飛機(jī)大戰(zhàn)的實(shí)現(xiàn)

    Python Pygame實(shí)戰(zhàn)之飛機(jī)大戰(zhàn)的實(shí)現(xiàn)

    飛機(jī)大戰(zhàn)想必是很多人童年時(shí)期的經(jīng)典游戲,這篇文章主要給大家介紹了關(guān)于如何利用python中的Pygame模塊寫(xiě)一個(gè)簡(jiǎn)單的飛機(jī)大戰(zhàn)小游戲的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • Appium+python自動(dòng)化怎么查看程序所占端口號(hào)和IP

    Appium+python自動(dòng)化怎么查看程序所占端口號(hào)和IP

    這篇文章主要介紹了Appium+python自動(dòng)化怎么查看程序所占端口號(hào)和IP,本文以FQ工具 Lantern 為例,通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2019-06-06
  • 解決Pytorch在測(cè)試與訓(xùn)練過(guò)程中的驗(yàn)證結(jié)果不一致問(wèn)題

    解決Pytorch在測(cè)試與訓(xùn)練過(guò)程中的驗(yàn)證結(jié)果不一致問(wèn)題

    這篇文章主要介紹了解決Pytorch在測(cè)試與訓(xùn)練過(guò)程中的驗(yàn)證結(jié)果不一致問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • python框架flask表單實(shí)現(xiàn)詳解

    python框架flask表單實(shí)現(xiàn)詳解

    這篇文章主要介紹了python框架flask表單實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python3爬蟲(chóng)學(xué)習(xí)之MySQL數(shù)據(jù)庫(kù)存儲(chǔ)爬取的信息詳解

    Python3爬蟲(chóng)學(xué)習(xí)之MySQL數(shù)據(jù)庫(kù)存儲(chǔ)爬取的信息詳解

    這篇文章主要介紹了Python3爬蟲(chóng)學(xué)習(xí)之MySQL數(shù)據(jù)庫(kù)存儲(chǔ)爬取的信息,涉及Python3針對(duì)mysql數(shù)據(jù)庫(kù)的連接、信息存儲(chǔ)等相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • 對(duì)pandas數(shù)據(jù)判斷是否為NaN值的方法詳解

    對(duì)pandas數(shù)據(jù)判斷是否為NaN值的方法詳解

    今天小編就為大家分享一篇對(duì)pandas數(shù)據(jù)判斷是否為NaN值的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • python和pyqt實(shí)現(xiàn)360的CLable控件

    python和pyqt實(shí)現(xiàn)360的CLable控件

    這篇文章主要介紹了python和pyqt實(shí)現(xiàn)360的CLable控件示例,需要的朋友可以參考下
    2014-02-02
  • Python中判斷input()輸入的數(shù)據(jù)的類(lèi)型

    Python中判斷input()輸入的數(shù)據(jù)的類(lèi)型

    在pyhton中,經(jīng)常會(huì)用到input()語(yǔ)句,但是input()語(yǔ)句輸入的內(nèi)容只能是字符串類(lèi)型,而我們經(jīng)常要輸入int類(lèi)型的數(shù)據(jù)等,這個(gè)時(shí)候就需要用到int()方法給輸入的內(nèi)容強(qiáng)制轉(zhuǎn)換,今天小編給大家介紹下Python中判斷input()輸入的數(shù)據(jù)的類(lèi)型,感興趣的朋友跟隨小編一起看看吧
    2022-11-11
  • python直接訪問(wèn)私有屬性的簡(jiǎn)單方法

    python直接訪問(wèn)私有屬性的簡(jiǎn)單方法

    下面小編就為大家?guī)?lái)一篇python直接訪問(wèn)私有屬性的簡(jiǎn)單方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • Python利用pip安裝tar.gz格式的離線資源包

    Python利用pip安裝tar.gz格式的離線資源包

    這篇文章主要給大家介紹了關(guān)于Python利用pip安裝tar.gz格式的離線資源包的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09

最新評(píng)論