使用字典作为字段之一时如何使用数据类?

How to use Dataclass when using a dict as one of the fields?

Dataclass 在以下代码中跨对象更改 dict。我该怎么做才能避免这种行为?

from dataclasses import dataclass, field
from typing import Dict

@dataclass
class Test:
      param: Dict[str, int] = field(default_factory = lambda: ({"xyz": 0}))

test1_obj = Test()
test2_obj = Test()
test1_obj.param["xyz"] = 10
print(test1_obj.param["xyz"])
print(test2_obj.param["xyz"])

两行都打印了 return 10,而我希望 test2_obj 仍然是 return 0。如何更改数据类的构造?

** 这在 3.7 及更高版本上是很好的行为 **

正如此处许多用户所建议的,这在 python 3.7 及更高版本上运行良好。