data=0):
self.data = data
self.dict_data = {'q': 1, 'w': self.data}
x = X()
print(x.data) # 0
print(x.dict_data) # {'q': 1, 'w': 0}
x.data = 22
print(x.data) # 22
print(x.dict_data) # {'q': 1, 'w': 0}
Почему данные в словаре не меняются?
Потому что обращение к self.data идёт только в тот момент, когда явно задано. Если хочешь, чтобы словарик обновлялся при обновлении x — напиши сеттер
Обсуждают сегодня