反射
#coding=utf8 class BlackMeidum(): feature ="ugly" def __init__(self,name,addr): self.name =name self.addr = addr def sell_house(self): print("u%s黑中介买房子,不要买" %self.name) def rent_house(self): print("%s黑中介租房子,不要租"%self.name) b1 =BlackMeidum("自如中介","在北二环") #1. 检测时否含有某种属性 print(hasattr(b1,"name")) # 结果 True print(hasattr(b1,"nihao")) #结果 False # 2. 获取属性 getattr(b1,"sell_house")() #打印结果:u自如中介黑中介买房子,不要买 # getattr(b1,"rent_house")() # #打印结果:自如中介黑中介租房子,不要租 print(getattr(b1,"aaa","不存在此属性")) # #结果:不存在属性 #3. 设置属性. setattr(b1,"sb","对的") print(b1.sb) #结果:对的 setattr(b1,"show_name",lambda self:self.name+"太帅了") print(b1.show_name(b1)) #结果:自如中介太帅了 setattr(b1,"show_name","太帅了") print(b1.show_name) #结果太帅了 #4.删除属性 delattr(b1,"addr") delattr(b1,"name") print(b1.__dict__) #{'sb': '对的', 'show_name': '太帅了'} setattr(b1,"name","shaiq") print(b1.__dict__) #结果 {'sb': '对的', 'show_name': '太帅了', 'name': 'shaiq'}
#coding=utf8 class BlackMeidum(): feature ="ugly" def __init__(self,name,addr): self.name =name self.addr = addr def sell_house(self): print("u%s黑中介买房子,不要买" %self.name) def rent_house(self): print("%s黑中介租房子,不要租"%self.name) b1 =BlackMeidum("自如中介","在北二环") #1. 检测时否含有某种属性 print(hasattr(b1,"name")) # 结果 True print(hasattr(b1,"nihao")) #结果 False # 2. 获取属性 getattr(b1,"sell_house")() #打印结果:u自如中介黑中介买房子,不要买 # getattr(b1,"rent_house")() # #打印结果:自如中介黑中介租房子,不要租 print(getattr(b1,"aaa","不存在此属性")) # #结果:不存在属性 #3. 设置属性. setattr(b1,"sb","对的") print(b1.sb) #结果:对的 setattr(b1,"show_name",lambda self:self.name+"太帅了") print(b1.show_name(b1)) #结果:自如中介太帅了 setattr(b1,"show_name","太帅了") print(b1.show_name) #结果太帅了 #4.删除属性 delattr(b1,"addr") delattr(b1,"name") print(b1.__dict__) #{'sb': '对的', 'show_name': '太帅了'} setattr(b1,"name","shaiq") print(b1.__dict__) #结果 {'sb': '对的', 'show_name': '太帅了', 'name': 'shaiq'}