2
我撞到下面昨晚,我仍处于亏损状态,以解释:哪种Python语言规则允许首先找到描述符?
class Foo(object):
@property
def dave(self):
vars(self)['dave'] = 1
return 2
f = Foo()
print f.dave
print f.dave
运行该代码产生:
2
2
问题是为什么?我对属性访问的理解是在类字典之前检查实例字典,并且在类字典中找到描述符之前,在实例字典上方看到的任何基本字典都没有被检查。
谢谢!我发誓我早些时候尝试过文档。 :)猜猜这些封面下面有什么神奇的东西,我甚至没有抓到它的表面。 – dmw 2009-12-08 10:27:15
@大卫威尔逊:没有魔法。但是当你试图让一个方法函数作为一个更新*本身的属性时*你做的事情太复杂了。也许如果你对函数和属性使用了不同的名字,你会发现没有魔法。 – 2009-12-08 11:32:31