gpt4 book ai didi

限制访问的 Python 属性

转载 作者:太空宇宙 更新时间:2023-11-04 10:58:21 24 4
gpt4 key购买 nike

我有以下代码:

class C:
def __init__(self, dx = 1):
self._dx = dx
def get_dx(self):
return self._dx

dx = property(get_dx,None,None)

c = C()
print c.dx
c.dx = 42
print c.dx # this shows 42

这应该有效 (see here) .然而,事实并非如此,我的问题如下:

  1. 是否有可能限制用户执行:c.dx = 42
  2. 如果是,怎么做? (我的意图是制作只读属性,我知道总有办法破解它,但我只是想阻止标准 c.dx = val 工作)

最佳答案

property 没有定义 setter 是只读的。这可能不起作用的唯一原因是您使用的是 Python 2 并定义了一个旧式类。请记住 始终 在 Python 2.x 中从 object 派生:

class C(object):
@property
def dx(self):
return self._dx

def __init__(self, dx = 1):
self._dx = dx

关于限制访问的 Python 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7922822/

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