參考: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'}
學習了。