反射

#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'}
View Code
#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'}

  

原文地址:https://www.cnblogs.com/mengbin0546/p/10236575.html