python面向對象--反射
阿新 • • 發佈:2018-06-16
pre object class %s pri 反射 ttr obj lse 1.反射包含四個函數hasattr(),getattr(),setattr(),delattr()
2.hasattr(o,name)判斷類中是否存在name屬性或方法
2.hasattr(o,name)判斷類中是否存在name屬性或方法
class test(object): def __init__(self): self.name=‘張三‘ def show(self): print(‘姓名:%s‘%self.name) T=test() print(hasattr(T,‘show‘)) print(hasattr(T,‘name‘)) print(hasattr(T,‘name1‘)) >>: True True False
3.getattr(o,name)根據name字符串取得對應類中的屬性或方法
class test(object):
def __init__(self):
self.name=‘張三‘
def show(self):
print(‘姓名:%s‘%self.name)
T=test()
res=getattr(T,‘show‘)
res()
>>:
姓名:張三
4.setattr(o,name,value)設置類的屬性值
class test(object): def __init__(self): self.name=‘張三‘ def show(self): print(‘姓名:%s‘%self.name) T=test() setattr(T,‘name‘,‘李四‘) print(T.name) >>: 李四
5.delattr(o,name)刪除類的屬性或方法
class test(object):
def __init__(self):
self.name=‘張三‘
def show(self):
print(‘姓名:%s‘%self.name)
T=test()
delattr(T,‘name‘)
print(T.name)
>>:
報錯
python面向對象--反射