How can I update the fields of a dataclass using a dict?
Example:
@dataclass
class Sample:
field1: str
field2: str
field3: str
field4: str
sample = Sample('field1_value1', 'field2_value1', 'field3_value1', 'field4_value1')
updated_values = {'field1': 'field1_value2', 'field3': 'field3_value2'}
I want to do something like
sample.update(updated_values)
One way is to make a small class and inherit from it:
class Updateable(object):
def update(self, new):
for key, value in new.items():
if hasattr(self, key):
setattr(self, key, value)
@dataclass
class Sample(Updateable):
field1: str
field2: str
field3: str
field4: str
You can read this if you want to learn more about getattr and setattr