-hasattr(self, 'get')--判斷self類中是不是有該(get)方法
-反射 setattr(self,get,get_all):相當(dāng)于把get函數(shù),變成了get_all
-getattr(self, 'get'):拿到get函數(shù)的內(nèi)存地址
class Foo(object):
def __init__(self):
self.name = "fsl"
def func(self):
return "hello python"
obj = Foo()
#判斷obj中是否有第二個(gè)參數(shù)
#如果第二個(gè)只是屬性,則返回屬性值,如果是方法名,則返回方法的內(nèi)存地址,如果第二個(gè)參數(shù)沒有在對(duì)象中找到,程序崩潰
# res = getattr(obj,"name1") #程序崩潰
# res = getattr(obj,"name") #返回屬性值 并同時(shí)可省略r = res()**
res = getattr(obj,"func") #res為func的內(nèi)存地址
r = res()
print(r)
#檢查obj中是否存在func成員,當(dāng)找到第二個(gè)參數(shù)時(shí)返回true,否則返回false
res = hasattr(obj,"func")
print(res)
print(obj.name) #查看之前obj的name
#設(shè)置obj中name為laowang
res = setattr(obj,"name","laowang")
print(obj.name)
#當(dāng)設(shè)置的值不存在時(shí),會(huì)自動(dòng)添加到實(shí)例對(duì)象中
#setattr需要三個(gè)參數(shù): x,y,z ==> x.y =z
#相當(dāng)于obj.age = 10
setattr(obj,"age","10")
print("name=%s,age=%s"%(obj.name,obj.age)) #laowang 10
#刪除對(duì)象的屬性
delattr(obj,"age")
print("name=%s,age=%s"%(obj.name,obj.age)) #程序崩潰
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。