我一直在学习使用@property修饰符来代替getter和setter。很多人似乎更喜欢使用@property而不是getter和setter。
无论哪种方式更受欢迎,它们大部分时间是否真的必要?我觉得对于所有内部变量都使用@property可能有些多余,尤其是当变量像下面这样简单的时候。如果它们能够工作,那么简单的事情应该保持简单吧?
class Ex():
def __init__(self, value):
self.__x = value
@property
def x(self):
return self.__x
@x.setter
def x(self, value):
self.__x = value
我认为@property并未提供额外的安全性(如果确实需要的话),因为有意者仍然可以访问变量。(._Ex__x)
什么时候应该使用@property(当不存在验证和未来更改的情况下)?什么时候不应该使用它们?
namedtuple
。 - Peter Wood