面向对象的反射

反射的四个机制 hasattr getattr setattr delattr 具体实现代码如下

 1 class People:
 2     def __init__(self,name,age,id):
 3         self.name=name
 4         self.age=age
 5         self.id=id
 6 
 7     def play(self):
 8         print('%s现在开始玩游戏了,告诉我你的ID%s'%(self.name,self.id))
 9 
10     def sleep(self):
11         print('%s ,不早了,赶快休息哦!'%self.name)
12 
13 p1=People('小婉',18,429006)
14 p1.play()
15 p1.sleep()
16 print(hasattr(p1,'name')) #检查对象里是否含有name这个属性 有则为TRUE
17 print(getattr(p1,'age233','找不到这样的元素')) #检查对象里是否含有name这个属性 有则为获取,无则返回默认设置的字符串
18 sp1=setattr(p1,'sex','woman') #向对象里添加指定属性(键值对形式)
19 print(p1.__dict__)
20 delattr(p1,'sex')  #删除指定对象属性 以key为主
21 
22 print(p1.__dict__)

猜你喜欢

转载自www.cnblogs.com/wen-kang/p/9247036.html