示例
''' class Foo(object): def __init__(self): self.storage = {} #上面代码想在对象中设置一个storage = {},但是上面语法执行完之后还没有进行创建,因为它要执行__setattr__方法进行创建, #但执行上面代码会触发类中__setattr__方法调用self.storage,这时会报错,因为此时对象中没有storage属性,进入了一个死循环 def __setattr__(self, key, value): print(self.storage) obj = Foo() obj.xx = 123 #直接调用父类object中的__setattr__方法 ''' ''' AttributeError: 'Foo' object has no attribute 'storage' ''' ###############################解决方式如下################################### class Foo(object): def __init__(self): self.storage = {} object.__setattr__(self,'storage',{}) #执行obj = Foo()会触发__init__方法,走到这一句代码后调用父类__setattr__方法, # 即在父类object设置了storage = {} def __setattr__(self, key, value): print(key,value) obj = Foo() #这一句执行完后打印结果 storage {} obj.xx = 123 #执行到这一句时会触发Foo类中的__setattr__方法 xx 123 ''' storage {} xx 123 '''