最佳答案
我不知道什么时候属性应该是私有的,也不知道是否应该使用 property
。
我最近读到 setter 和 getter 不是 pythonic,但是使用 property
装饰器是可以的。
但是如果我有属性,那么它不能从类的外部设置,而是可以读(只读属性)。这个属性应该是私有的吗? 我说的私有是指带下划线的,就像 self._x
那样?
如果是,那么如何在不使用 getter 的情况下读取它?
我现在唯一知道的方法就是写
@property
def x(self):
return self._x
这样我可以读取属性的 obj.x
,但我不能设置它的 obj.x = 1
,所以它的罚款。
但是我真的应该关心设置不能设置的对象吗?也许我应该把它留下。但是我不能使用下划线,因为读取 obj._x
对于用户来说是奇怪的,所以我应该使用 obj.x
,而且用户也不知道他不能设置这个属性。
你的观点和做法是什么?