来自 Python数据模型文档:
object.__get__(self, instance, owner=None)调用以获取所有者类的属性(类属性访问)或该类的实例的属性(实例属性访问)。可选
owner参数是所有者类,而instance属性是通过其访问的实例,或者None是通过owner.此方法应返回计算出的属性值或引发
AttributeError异常。PEP 252 指定可以
__get__()使用一个或两个参数调用。Python 自己的内置描述符支持这个规范;但是,某些第三方工具可能具有需要两个参数的描述符。__getattribute__()无论是否需要,Python 自己的实现总是传入这两个参数。
object.__set__(self, instance, value)调用以将
instance所有者类的实例上的属性设置为新值 value。请注意,将描述符的种类添加
__set__()或__delete__()更改为“数据描述符”。有关更多详细信息,请参阅调用描述符。
object.__delete__(self, instance)调用以删除
instance所有者类的实例上的属性。
为什么__get__需要一段owner时间__set__而__delete__没有?
这是否意味着当描述符同时提供__get__和时__set__,
我的问题实际上是这个问题的一部分。