以下: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