__setattr__("attr", value).这个需要注意。当在__setattr__方法内对属性进行赋值时,不可使用self.attr = value,因为他会再次调用self....__setattr__("attr", value),则会形成无穷递归循环,最后导致堆栈溢出异常。应该通过对属性字典做索引运算来赋值任何实例属性,也就是使用self....自己实现__setattr__有很大风险,一般情况都还是继承object类的__setattr__方法。...通过使用__setattr__, __getattr__, __delattr__可以重写dict,使之通过“.”调用键值。...class Dict(dict):
'''
通过使用__setattr__,__getattr__,__delattr__
可以重写dict,使之通过“.”调用
'''