Python 如何在初始化后使类的公共属性为只读?
例如:Python 如何在初始化后使类的公共属性为只读?,python,class,exception,readonly,Python,Class,Exception,Readonly,例如: class Example: def __init__(self, value): self.value = value 我想让人们在初始化后不能更改self.value的内容。因此,如果有人尝试: >>> c = Example(1) >>> c.value = 2 我希望它提出一个错误,或干脆使它不可能 您可以使用: 请注意,带有的值仍然可以作为示例\u对象写入。\u value,但在属性名前加下划线是一种惯例,用于告诉
class Example:
def __init__(self, value):
self.value = value
我想让人们在初始化后不能更改self.value
的内容。因此,如果有人尝试:
>>> c = Example(1)
>>> c.value = 2
我希望它提出一个错误,或干脆使它不可能 您可以使用:
请注意,带有的值仍然可以作为
示例\u对象写入。\u value
,但在属性名前加下划线是一种惯例,用于告诉其他开发人员此属性不是类公共API的一部分,不应使用。为什么需要这样做?我想您需要重写示例类中的函数,但您不能这样做。你所做的任何事都可以改变。建议你克服它,做点别的事情。
class Example(object):
def __init__(self, value):
self._value = value
@property
def value(self):
return self._value