1、python属性访问魔法方法:
>>> 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)
2、对于一个矩形类的定义和说明:
class R:
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)
def getarea(self):
return self.width*self.height