class MyClass(object):
# 设置对象属性时调用
def __setattr__(self, key, value):
print('----__setattr__-----')
super().__setattr__(key, value)
# 访问属性不存在,__getattribute__抛出异常时调用
def __getattr__(self, item):
print('----__getattr__-----')
# return object.__getattribute__(self,item)
return 100
# 访问属性时调用
def __getattribute__(self, item):
print('----__getattribute__-----')
return object.__getattribute__(self, item)
# 删除属性时调用
def __delattr__(self, item):
print('----__delattr__-----')
object.__delattr__(self, item)
m1 = MyClass()
m1.name = 'haha'
print(m1.name)
print(m1.name1)
del m1.name
print(m1.name)