class Foo:
def __init__(self,x):
self.x = x
def __getattr__(self, item):
print("执行了getattr方法")
def __delattr__(self, item):
print("执行了删除方法",item)
def __setattr__(self, key, value):
# self.key = value
print("执行了__setattr__方法")
self.__dict__[key] = value # 加属性的本质就是往__dict__字典中加值
f = Foo(666)
print(f.x)
print(getattr(f,'x'))
print(f.yyy) # 当调用了对象中不存在的属性时,会调用对象的__getattr()方法
del f.x # 当调用del,会触发__delattr__方法
f.y = 2
print(f.__dict__)