参考:https://www.cnblogs.com/huchong/p/8287799.html
1.重写了setattr方法后进行赋值
class ClassA(object): def __init__(self, classname): self.classname = classname def __setattr__(self, name, value): # self.name = value # 如果还这样调用会出现无限递归的情况 #self[name]=value object.__setattr__(self,name,value)#如果自定义了__setattr__函数,那么需要这样子赋值 print('invoke __setattr__') insA = ClassA('a') # __init__中的self.classname调用__setattr__。 # invoke __setattr__ print(insA.__dict__) # {} insA.tag = 'insA' # invoke __setattr__ print(insA.__dict__) # {}
输出:
invoke __setattr__ {'classname': 'a'} invoke __setattr__ {'classname': 'a', 'tag': 'insA'}
学习了。