| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
Tip: 
 
 
一,理论 
 
 
二,应用 
1  
class C: 
        def __getattribute__(self, name): 
                print('getattribute') 
                return super().__getattribute__(name) 
        def __getattr__(self, name): 
                print('getattr') 
        def __setattr__(self, name, value): 
                print('setattr') 
                super().__setattr__(name, value) 
        def __delattr__(self, name): 
                print('delattr') 
                super().__delattr__(name) 
 
         
>>> c = C() 
>>> c.x 
getattribute               #优先调用 
getattr 
>>> c.x = 1 
setattr 
>>> del c.x 
delattr 
 
2 
- class Rectangle:
 
 -     def __init__(self, width = 0, height = 0):
 
 -         self.width = width
 
 -         self.height = height
 
  
-     def __setattr__(self, name, value):
 
 -         if name == 'square':
 
 -             self.width = value
 
 -             self.height = value
 
 -         else:
 
 -            # super().__setattr__(name, value)
 
 -            super().__dic__[name] = value
 
 -             
 
 -     def cal(self):
 
 -         
 
 -        return self.width * self.height
 
  复制代码 
 
三,课后练习 |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |