要回答第二个问题,哪里是_v
?
您的描述符版本保留_v
在描述符本身中。描述符的每个实例(类级实例SomeClass1
以及类对象中的所有对象级实例SomeClass2
将具有不同的值)_v
。
看这个版本。此版本更新与描述符关联的对象。这意味着对象(SomeClass1
或x2
)将包含属性_v
。
class MyDescriptor(object):
def __get__(self, obj, type=None):
print "get", self, obj, type
return obj._v
def __set__(self, obj, value):
obj._v = value
print "set", self, obj, value