Python描述符的元编程:如何在类定义后添加描述符?

时间:2012-03-28 21:14:58

标签: python metaprogramming descriptor

如何在定义类后关联描述符?

在正常的描述符场景中,我会这样做:

class X:
    d = Descriptor()

然后每当调用Descriptor.__get__(self,obj,kls)时,第二个参数就是X的一个实例,所有这些都很开心和精彩。

但如果X已经定义如此:

class X: pass

如何在事后添加描述符(并使其正常运行!)?我所有的尝试都没有与班级正确联系

我正在做这个因为我有一堆我想要以DRY方式添加的属性,我希望它们是cached_properties(我用它来记住每个属性的值)

1 个答案:

答案 0 :(得分:3)

X.d = Descriptor()

这就是你所需要的一切。