【问题标题】:How can I update a dataclass in place? [duplicate]如何就地更新数据类? [复制]
【发布时间】:2019-12-03 03:40:03
【问题描述】:

给定同一数据类的两个实例,我如何使用第二个的值就地更新第一个?

@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

【问题讨论】:

    标签: python python-dataclasses


    【解决方案1】:

    使用dataclasses.fields循环遍历所有属性,并一一设置。

    from dataclasses import fields
    
    for f in fields(f2):
        setattr(f1, f.name, getattr(f2, f.name))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-16
      • 2018-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多