我生成了两个不同的python 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
)和另一个实例(a
)中的嵌套dataclass
保持不变.
我究竟做错了什么,还是dataclass
错误的工具?
我拒绝将感谢视为流利,感谢你们所有回答者,并向你们表示感谢。