阻止/更改对类变量的访问

2024-10-06 12:45:39 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种方法可以通过重写实例变量来阻止或改变对Python中类变量的访问?

注意this question是错误的,实际上是指实例变量,而不是类变量。

基于阅读多篇关于死亡陷阱的文章,我宁愿不走那条路(而且我还没有深入研究,不知道它是否按照我的要求做)。

示例:

class A(object):

    foo = "don't change me"

    def __setattr__(self, name, value):
        raise ValueError

if __name__ == '__main__':
a1 = A()
print a1.foo # don't change me
print A.foo  # don't change me

A.foo = 'bar' # ideally throw an exception or something here
print A.foo   # bar
a2 = A()
print a1.foo  # bar
print a2.foo  # bar

Tags: 实例方法namea2fooa1错误bar