class Cls():
def __init__(self, start):
self.value = start
class Desc():
def __get__(self, instance ,owner):
print("In Descriptor's __get__method")
return self.value
def __set__(self, instance, start):
print("In Descriptor's __set__ method")
self.value = start
value = Desc()
X = Cls('Hello')
X.value = "Hi"
描述符的上述实现对我来说是模糊的。X.value 和 Cls.value 引用同一个对象并且属于 str 类。但 Cls.__dict__['value'] 是描述符对象。有两种类型分配给名称“值”。
有人可以解释一下吗?这个特定实现背后的逻辑是什么。为什么 Cls.value 或 X.value 不是描述符对象。我正在使用 python 3.3