Python 描述符的 __get__ 中第三个参数 objtype 的用法是什么

rua*_*hao 6 python descriptor

我知道在 Python 中我们必须__get__在实现描述符时提供函数。界面是这样的:

def __get__(self, obj, objtype=None):
    pass
Run Code Online (Sandbox Code Playgroud)

我的问题是:

为什么我们必须提供objtypearg?是什么objtype用的?

我没有看到一些关于这个 arg 用法的例子。

小智 0

来自以下文档object.__get__(self, instance, owner)

owner始终是所有者类,而instance是通过访问属性的实例,或者None当通过owner.

所以你不提供 owner,它是根据__get__调用方式设置的。