我有用于测试数据描述符的代码
class DataDescriptor(object):
def __init__(self):
self.value = 1990
def __get__(self,obj,cls):
print "__get__ in Data descriptor"
return self.value
def __set__(self,obj,value):
self.obj = value
print "__set__ in Non Data Descriptor"
def __del__(self,obj):
print "__del__ in Non Data Descriptor"
del self.obj
class NonDataDescriptor(object):
def __get__(self,obj,cls):
print "__get__ in Non Data descriptor"
class C(object):
dd = DataDescriptor()
ndd =NonDataDescriptor()
def __init__(self):
self.__value = 1
cobj = C()
cobj.dd
当我执行该操作时,我只能看到打印语句,但我无法看到我在获取函数中重新开始的实际值
我的输出只是
__get__ in Data descriptor
答案 0 :(得分:1)
您没有打印返回值。所以,你没有看到它。
你需要这样做: -
print cobj.dd
答案 1 :(得分:0)
你的意思是这样吗?
def __get__(self, obj, cls):
print "__get__ in Data descriptor", self.value
return self.value