gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 13:34:31 27 4
gpt4 key购买 nike

我正在使用 python 2.7。

我有以下类(class):

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 方法,因此我希望将“True”分配给 x.pos_a 会引发错误。错误应该是我无法设置有getter方法但没有setter方法的属性的值。相反,该值设置为“True”并且打印没有问题。我如何实现以达到该结果?我希望用户能够“获取”这些值,但他们不应该能够设置它们。

最佳答案

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

class Test(object):
...

那是因为属性是用描述符实现的,而且只有new-style classes支持描述符。

关于python - 如何在没有 Setter 的情况下使用 Getter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41864375/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com