描述符的 Python 元编程 : How to add descriptor after class definition?

标签 python metaprogramming descriptor

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

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

class X:
    d = Descriptor()

然后每当 Descriptor.__get__(self,obj,kls) 被调用时,第二个参数是 X 的一个实例,一切都很愉快和美妙。

但是如果 X 已经这样定义了呢:

class X: pass

我如何在事后添加描述符(并使其正常运行!)?我所有的尝试都没有与类(class)建立适当的联系

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

最佳答案

X.d = Descriptor()

这就是您所需要的。

关于描述符的 Python 元编程 : How to add descriptor after class definition?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9915748/

相关文章:

c++ - std::is_assignable 和 const 指针对象

c++ - 具有某种条件的宏

python - .pdbrc 文件中的断点命令

python - 如何在 SQLAlchemy 和 Firebird 的自定义查询中将 Python 列表绑定(bind)为参数?

python - Bottle 调试工具栏

python - 为什么在使用 obj.x 语法调用时不调用 Python 描述符方法?

c++ - 我如何在 C++ 中使用 python 库?

ruby - define_method 不返回任何结果

c++ - 调试错误 - vector 下标超出范围 - PCL