Прежде всего, я прошу прощения, если моя терминология истекла, и это базовый c вопрос, на который ответили миллион раз! Я пытаюсь понять это, не зная, как это называется, поэтому мои поиски не дали ничего полезного ...
Я часто обнаруживаю, что присваиваю определенные "свойства" экземплярам класса в python, который Я хочу изменить и ссылаться позже. Хорошим примером может быть «состояние» экземпляра, как в следующем коде:
class Example:
def __init__():
self.status = "NORMAL"
a = Example()
print(a.status)
a.status = "CANCELLED"
print(a.status)
Хотя это, безусловно, работает, оно требует, чтобы свойство представляло собой строку, которая не очень удобна в обслуживании и довольно склонна к ошибка. Есть ли способ присвоения объекта классу, который можно передать атрибуту? Например (и я знаю, что это не работает):
class ExampleWithProperty:
NORMAL
CANCELLED
def __init__()
self.status = self.NORMAL
b = Example()
print(b.status)
# would expect: ExampleWithProperty.NORMAL or b.NORMAL
b.status = b.CANCELLED
print(b.status)
# would expect: ExampleWithProperty.CANCELLED or b.CANCELLED
Я считаю, что я видел подобную функциональность в других языках, но я не смог придумать, как это сделать в python !