以下:Python __getattr__行为?在ECLIPSE/PyDev控制台中?
class A(object):
def __getattr__(self, attr):
try:
return self.__dict__[attr]
except KeyError:
self.__dict__[attr] = 'Attribute set to string'
print 'Assigned attribute'
return self.__dict__[attr]
回报:
obj = A()
obj.foo
Assigned attribute
Assigned attribute
Assigned attribute
'Attribute set to string'
在哪里魔怎么回事?
(我在2.6.6)
编辑:感谢您的反馈。事实上,这个问题不能从Python命令行本身重现。看来只有在Eclipse/PyDev中使用控制台时才会出现这种情况。
对于我来说,它只能打印`分配attribute`一次。 – 2011-01-19 17:04:58