自定义属性访问

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)
posted @ 2022-04-23 10:58  狒狒桑  阅读(17)  评论(0编辑  收藏  举报