Переопределение свойства в Python - PullRequest
0 голосов
/ 08 апреля 2020

Я хотел бы переопределить свойство.

Мой код более высокого уровня:

@property
def label(self):
    return self._label if self._label else None

@label.setter
def label(self, value):
    self._label = value

В подклассе у меня есть:

@property
def label(self):
    return str(self.center_pixel.as_tuple())

Когда Я пытаюсь установить label Я получаю сообщение об ошибке:

    self.label = str(self.id)
AttributeError: can't set attribute

Но когда я удаляю декоратор @property в методе label низшего класса, все работает нормально.

Есть хорошее объяснение, почему это так?

Спасибо.

ОБНОВЛЕНИЕ:

У меня есть подкласс класса более низкого уровня. Он также использует label как @property. В этом случае, если я удаляю декоратор @property, я получаю сообщение об ошибке при доступе к значению label. Теперь я еще больше запутался!

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