python3 魔法方法:属性访问

xiaoxiao2021-02-28  43

类中的获取属性、设置属性的方法:

重载属性访问函数

''' 类中的获取属性、设置属性的方法: 重载属性访问函数 ''' class C: #定义当该类的属性被访问时的行为(不管是不是存在该属性,若不存在,则调用__getattr__(self,name)) #例如:对于类的实例对象object,执行print(object.x)获取object的x属性,就会调用该函数 def __getattribute__(self, item): print('getattribute') super().__getattribute__(item) #定义当用户试图获取一个不存在的属性时的行为 #例如:对于类的实例对象object,执行print(object.x)获取object的x属性不存在时,就会调用该函数 def __getattr__(self,name): print('getattr') #定义当一个属性被设置时的行为 #例如:对于类的实例对象object,执行object.x = 1设置object的x属性的值,就会调用该函数 def __setattr__(self,name,value): print('setattr') super().__setattr__(name,value) #定义当一个属性被删除时的行为 #例如:对于类的实例对象object,执行del object.x删除object的x属性的值,就会调用该函数 def __delattr__(self,name): print('delattr') super().__delattr__(name) if __name__ == '__main__': c = C() c.x = 1 del c.x
转载请注明原文地址: https://www.6miu.com/read-2628100.html

最新回复(0)