当前位置:  开发笔记 > 编程语言 > 正文

如何在没有Setter的情况下使用Getter

如何解决《如何在没有Setter的情况下使用Getter》经验,为你挑选了1个好方法。

我正在使用python 2.7.

我有以下课程:

class Test:

    def __init__(self):
        self._pos_a = ['test_1']
        self._pos_b = ['test_2']


    @property
    def pos_a(self):
        return self._pos_a

    @property
    def pos_b(self):
        return self._pos_b


    if __name__ == "__main__":
        x = Test()
        x.pos_a = True
        print x.pos_a

>>> True

我的理解是,通过使用属性装饰器,我基本上为我的两个类属性建立了一个getter方法.既然我没有创建一个setter方法,我希望我对x.pos_a的"True"赋值会引发错误.错误应该是我不能设置有getter方法但没有setter方法的属性的值.相反,该值设置为"True",它打印没有问题.我如何实现这一目标以实现这一结果?我希望用户能够"获取"这些值,但他们不应该设置它们.



1> wim..:

您需要从object属性继承才能正常工作.

class Test(object):
    ...

那是因为属性是用描述符实现的,只有新式类支持描述符.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有