python五十二:__setattr__,__delattr__,__getattr__方法

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__)

猜你喜欢

转载自blog.csdn.net/m0_37564426/article/details/86436195