我不知道什么时候属性应该是私有的,如果我应该使用属性.
我最近读到,setter和getter不是pythonic,我应该使用属性装饰器.没关系.
但是,如果我有属性,那么不能从类外部设置但可以读取(只读属性).这个属性应该是私有的,私有的我是指下划线,就像那样self._x?如果是,那么如何在不使用getter的情况下阅读它?我现在唯一知道的方法是写
@property
def x(self):
return self._x
Run Code Online (Sandbox Code Playgroud)
这样我可以读取属性obj.x但我无法设置它obj.x = 1所以它没关系.
但是我真的应该关心设置不能设置的对象吗?也许我应该离开它.但是我再也不能使用下划线,因为obj._x用户读取很奇怪,所以我应该使用obj.x然后再次用户不知道他不能设置这个属性.
你有什么看法和实践?