当前位置: 移动技术网 > IT编程>脚本编程>Python > python的___setattr__魔方方法

python的___setattr__魔方方法

2019年04月21日  | 移动技术网IT编程  | 我要评论

有种你爬墙,龙珠超次元乱战下载,台州银行艳照门

 ___setattr__魔方方法
一定要注意防止无限递归
当在此方法内部给属性赋值的时候,那会调用此方法,又会重新赋值,无限重复
最后要归于super是种解决方法。或者用dict方法。  
 1 class recangle:
 2     def __init__(self,width = 0,heigh = 0):
 3         self.width = width
 4         self.heigh = heigh
 5 
 6     def __setattr__(self,name,value):
 7         if name == 'square':
 8             self.width = value
 9             self.heigh = value
10         else:
11             print('else被执行了')
12             super().__setattr__(name,value)
13             
14 
15     def getarea(self):
16         return self.width * self.heigh
17 
18 a = recangle(4,5)
19 print(a.getarea())
20 a.square = 10
21 print(a.getarea())
22 a.width = 100
23 print(a.getarea())
24 
25     
###运行结果
else被执行了
else被执行了
20
else被执行了
else被执行了
100
else被执行了
1000

  

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网