如果这是一个愚蠢的问题,请道歉。
我在这里有一个潜在的字典键列表:
form_fields = ['sex',
'birth',
'location',
'politics']
我目前正在手动为这些键添加值,如下所示:
self.participant.vars["sex"] = [Constants.fields_dict["sex"][0], Constants.fields_dict["sex"][1], self.player.name]
self.participant.vars["birth"] = [Constants.fields_dict["birth"][0], Constants.fields_dict["birth"][1],self.player.age]
self.participant.vars["location"] = [Constants.fields_dict["location"][0], Constants.fields_dict["location"][1],self.player.politics]
我希望能够像这样一起使用for循环来完成所有这些:
for i in form_fields:
self.participant.vars[i] = [Constants.fields_dict[i][0], Constants.fields_dict[i][1], self.player.`i`]
但是,显然,我不能像那样引用对象self.player。i
。有没有办法动态引用该对象?
答案 0 :(得分:1)
使用getattr,例如,getattr(x, 'foobar')
相当于x.foobar
。
for i in form_fields:
self.participant.vars[i] = [Constants.fields_dict[i][0], Constants.fields_dict[i][1], getattr(self.player, i)]