Можно ли использовать установщик свойств на частные переменные в Python? - PullRequest
0 голосов
/ 29 ноября 2018

В следующем фрагменте кода я использую установщик для атрибута x (который я хотел бы оставить приватным)

class test:

def __init__(self, pos, x):

    self._pos = pos
    self.x = x       # Want to be a private variable, eg. self._x


@property
def x(self):
    return self._x


@x.setter
def x(self, x):
    # Logic for setting x
    if self._pos == 'long':
        self._x = -1 * abs(x)
    elif self._pos == 'short':
        self._x = abs(x)
    else:
        raise ValueError('$$ pos must be long or short')

Проблема в том, что я получаю ДВА атрибута, self.x ANDself._x.Поскольку я хочу, чтобы x был приватным - я бы хотел иметь только self._x (и отменить self.x).Чего не хватает в коде?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...