Я генерирую два разных экземпляра питона dataclass
, который включает в себя вложенный dataclass
.Когда я обновляю значение во вложенном dataclass
в одном экземпляре (но не в другом), те же данные помещаются во вложенные dataclass
в в обоих экземплярах.Это не то, что я ожидал.
from dataclasses import dataclass
@dataclass
class sub1:
q: int = 10
r: str = "qrst"
@dataclass
class A:
a: int = 1
s1: sub1 = sub1()
if __name__ == '__main__':
a = A()
aa = A()
aa.a = 9
aa.s1.r = "92"
print("a:", repr(a))
print("aa:", repr(aa))
''' Produces --
a: A(a=1, s1=sub1(q=10, r='92'))
aa: A(a=9, s1=sub1(q=10, r='92'))
'''
Я ожидал, что вложенный dataclass
будет обновлен только в указанном экземпляре (aa
) и для вложенного dataclass
в другом экземпляре (a
) оставить без изменений.
Что я делаю не так, или dataclass
не тот инструмент?
Я отказываюсь считать благодарность пухом.Спасибо за всех, кто ответит, и за вашу благодарность тем, кто пытался его удалить.