将值从字典分配给对象

Sam*_*pak 3 python

我经常需要做这样的事情:

"Some dictionary with values obtained somehow (e.g. submitted form values)"
my_dict = {
    'name': 'John',
    'surname': 'Doe',
    'age': 27,
    'hair_color': 'green',
}

"object person is some instance of class representing person"
person.name = my_dict['name']
person.surname = my_dict['surname']
person.age = my_dict['age']
person.hair_color = my_dict['hair_color']
Run Code Online (Sandbox Code Playgroud)

我认为这是很多重复.你用什么方法?

And*_*ark 8

for attr, val in my_dict.items():
    setattr(person, attr, val)
Run Code Online (Sandbox Code Playgroud)

如果my_dict可能包含您不想复制的任何键,请person创建要复制的键列表,并执行以下操作:

key_list = ['name', 'surname', 'age', 'hair_color']
for attr in key_list:
    setattr(person, attr, my_dict[attr])
Run Code Online (Sandbox Code Playgroud)