我认为遍历这些字段可能是最简单的方法。我能想到的所有其他选项都涉及创建一个新对象。
from dataclasses import fieldsmarker_a = Marker(5)marker_b = Marker(0, 99)for field in fields(Marker): setattr(marker_b, field.name, getattr(marker_a, field.name))print(marker_b) # Marker(a=5, b=1.0)

我认为遍历这些字段可能是最简单的方法。我能想到的所有其他选项都涉及创建一个新对象。
from dataclasses import fieldsmarker_a = Marker(5)marker_b = Marker(0, 99)for field in fields(Marker): setattr(marker_b, field.name, getattr(marker_a, field.name))print(marker_b) # Marker(a=5, b=1.0)