我使用 @property
来确保对对象实例变量的更改在我需要的地方被方法包装。
当一个实例有一个逻辑上不应该改变的变量时怎么办?例如,如果我正在为进程创建一个类,则每个进程实例都应该有一个 PID 属性,该属性将经常被访问但不应更改。
处理试图修改该实例变量的人的最 Pythonic 方式是什么?
只是相信用户不会尝试改变 他们不应该做的事?
使用属性但提高 如果实例变量是异常 变了?
还有别的吗?
最佳答案
在变量名前加上__
,并创建只读属性,Python 会处理异常,并保护变量本身不被意外覆盖。
class foo(object):
def __init__(self, bar):
self.__bar = bar
@property
def bar(self):
return self.__bar
f = foo('bar')
f.bar # => bar
f.bar = 'baz' # AttributeError; would have to use f._foo__bar
关于python - 常量实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1527395/