标签:tin 重写 app 实例化 this elf 实例 set def
def __setattr__(self, name, value): """ Set the value of setting. Clear all cached values if _wrapped changes (@override_settings does this) or clear single values when set. """ if name == ‘_wrapped‘: self.__dict__.clear() else: self.__dict__.pop(name, None) super(LazySettings, self).__setattr__(name, value) 1、执行完当前类的_setattr__方法再执行LazySettings类的父类的__setattr__方法 2、当类含有__setattr__方法时,对象初始化自动执行该方法。
3、在实例化的时候,会进行初始化,在__init__里,对value的属性值进行了设置,这时候会调用__setattr__方法。
在对name重新设置值的时候,会再次进入__setattr__方法。
需要注意的地方是,在重写__setattr__方法的时候千万不要重复调用造成死循环。
Python super方法及__setattr__方法详解
标签:tin 重写 app 实例化 this elf 实例 set def
原文地址:https://www.cnblogs.com/Fmaj7/p/13167656.html