给出相同数据类的两个实例,如何用第二个实例的值就地更新第一个实例?
即
@dataclass
class Foo:
a: str
b: int
f1 = Foo("foo", 1)
f2 = Foo("bar", 2)
# Update in place, so that f1.a == f2.a, f1.b == f2.b and so on
注意:我不想简单地设置f1 = f2
;我想就地更新f1
。
答案 0 :(得分:0)
使用dataclasses.fields
遍历所有属性并一一设置。
from dataclasses import fields
for f in fields(f2):
setattr(f1, f.name, getattr(f2, f.name))