Python 数据描述符不起作用

标签 python

我有这段代码用于测试数据描述符

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 函数中退出的实际值

我的输出仅此

__get__ in Data descriptor

最佳答案

您没有打印返回值。所以,你没有看到它。

你需要做:-

print cobj.dd 

关于Python 数据描述符不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14807506/

相关文章:

python - 如何用 numpy 数组中的值替换一列?

python - 在 python 中使用 COM dll?

Python使用正则表达式从文本中提取数字

python - 如何在 python 中格式化像 "1 hour ago"这样的 timedelta 以便它是可翻译的

php - PHP 中的内存泄漏 Comet 服务器

python - 虚拟环境的困惑

python - 改变数组的一部分不起作用

python - 为什么web.py中打印结果是 "favicon.ico"

python - 迁移学习时 TensorFlow 中的验证和评估指标问题

python - 我应该使用哪个 : Python-sgp4, PyEphem,python-skyfield