【发布时间】:2013-05-30 15:59:28
【问题描述】:
我知道您在重新定义 setattr 方法时应该注意可能会以循环结束。
我知道有两种解决方案可以避免循环:
1) 使用对象超类,调用:
object.__setattr__(instance,attr,value)
2) 使用类字典:
self.__dict__[attr] = value
我的问题是,__dict__ 解决方案不应该也陷入循环吗?为什么不是?
是因为我们这样调用__dict__对象的__setattr__(一切都是对象)还是什么?
如果是这样,它不应该对所有东西都一样吗?
【问题讨论】:
-
a[b] = c没有设置属性。它设置一个项目。这在概念上和 w.r.t 上都是不同的。涉及的方法不同。