python反射详解
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                python反射详解
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                
                            
                            
                            反射
#hasattr(obj,name_str)判斷一個(gè)對(duì)象obj里是否有對(duì)應(yīng)的name_str字符串的方法
#getattr(obj,name_str)根據(jù)字符串去獲取obj對(duì)象里的對(duì)應(yīng)的方法的內(nèi)存地址
#setattr(object, name, value) setattr(x,“foobar”,123)相當(dāng)于x.foobar = 123。
#delattr(object, name)  該函數(shù)刪除該obj的一個(gè)由string指定的屬性。delattr(x, 'foobar')=del x.foobar 
class  test(object):def __init__(self,name):self.name=namedef test1(self,fruit):print("%s吃%s水果"%(self.name,fruit))
T=test('王荔')#存在此方法
if hasattr(T,'test1'):#檢查成員func=getattr(T,'test1')#獲取方法地址func('西瓜')
else:setattr(T,'name','王力')  #設(shè)置成員print(T.name)#不存在此方法,設(shè)置變量或修改變量
if hasattr(T,'test10'):#檢查成員func=getattr(T,'name')#獲取變量print(func)else:setattr(T,'age',30)  #設(shè)置變量setattr(T, 'name','王力') #修改變量print(T.name,T.age)#通過setattr方法把test3函數(shù)動(dòng)態(tài)裝配到T這個(gè)實(shí)例里,方法名是"test2"
def test3(self):print('類外的方法綁定到類內(nèi)')
setattr(T,'test2',test3)
func=getattr(T,'test2')
func(T)#刪除變量、刪除方法
delattr(T,'name')
#delattr(T,'test1')
#print(T.name)
#print(T.test1())C:\Users\wangli\PycharmProjects\AutoMation\venv\Scripts\python.exe C:/Users/wangli/PycharmProjects/AutoMation/case/test.py
王荔吃西瓜水果
王力 30
類外的方法綁定到類內(nèi)Process finished with exit code 0
 
                        
                        
                        ?
總結(jié)
以上是生活随笔為你收集整理的python反射详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 4天搞定Docker和k8s核心架构,稳
 - 下一篇: 【业务篇】史上最全经验版用例之IOS和A