Как связать две переменные в классе, чтобы одна содержалась в другой?
начал немного учить питон и застрял как мне кажется на очень простой вещи. Я думал, что если я поменяю значение в переменой name, то значение применится и к переменной description, но так не произошло. Экземпляры от класса я не создаю, а использую просто в качестве хранилища строковых значений, которые потом используются в коде.
Код:
class Data:
name = "Tom"
description = f'His name is {name}'
Data.name = "Roman"
print(Data.name) // "Roman"
print(Data.description) //"His name is Tom"
Ответы (1 шт):
Автор решения: Alpensin
→ Ссылка
Обычно всё же используют экземпляры класса для для хранения данных. Для удобства посмотрите в сторону NamedTuple или Dataclasses. Но если делать как решили вы, то можно воспользоваться декораторами
class Data:
name = "Tom"
@classmethod
@property
def description(cls):
return f'His name is {cls.name}'
Data.name = "Tom"
print(Data.name) # Tom
print(Data.description) # His name is Tom
Data.name = "Roman"
print(Data.name) # Roman
print(Data.description) # His name is Roman