魔法方法是指python中自带的被双下划线包围的方法,它们在特殊情况下会被自动调用。
getattr(self, name)
定义当用户试图获取一个不存在的属性时的行为
getattribute(self, name)
定义当该类的属性被访问时的行为
setattr(self, name, value)
定义当一个属性被设置时的行为
delattr(self, name)
定义当一个属性被删除时的行为
dir(self)
定义当 dir() 被调用时的行为
比如
class test:
x=0
def __getattr__(self,name):
print("use getattr")
def __setattr__(self,name,value):
print("use setattr")
a=test()
a.x=1 #use setattr
a.y #use getattr
魔法方法还有很多,具体用法可以看以下链接
https://www.cnblogs.com/seablog/p/7173107.html