Я узнал о @property декораторах, которые заменяют геттеры и сеттеры. Многие люди предпочитают использовать @property вместо методов получения и установки.
Независимо от того, что желательно, они вообще нужны в большинстве случаев? Я чувствую, что нет необходимости или излишне иметь @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 (когда проверка и будущие изменения не ожидаются) и когда я не должен их использовать?