Mi scuso se questa è una domanda stupida.
Ho un elenco di potenziali chiavi del dizionario qui:
form_fields = ["sex",
"birth",
"location",
"politics"]
Attualmente sto aggiungendo manualmente valori a questi tasti in questo modo:
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]
Mi piacerebbe essere in grado di fare un uso di un ciclo for per farlo tutto in una volta in questo modo:
for i in form_fields:
self.participant.vars[i] = [Constants.fields_dict[i][0], Constants.fields_dict[i][1], self.player.`i`]
Ovviamente, tuttavia, non posso fare riferimento all'oggetto self.player.i
come quello. C'è un modo per fare riferimento a quell'oggetto dinamicamente?
risposte:
1 per risposta № 1uso getattr, Per esempio, getattr(x, "foobar")
è equivalente a 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)]