动态生成变量的访问值

时间:2014-09-02 11:27:12

标签: python

我已经为变量赋值,并且我通过使用循环生成变量名。我想分配生成变量的实际值。如果我遵循以下方法,则分配字符串而不是值。

full_C3_sucess = 10
comp_Nonc3 = 100
for stage in ["C3", "Nonc3"]:
    for dtype in ["full", "comp"]:
        deployment = {}
        format = dtype + "_" + stage
        deployment['deployAttempted'] = format + "_sucess"

如果我打印deployment['deployAttempted'],则表示字符串full_c3_sucess而不是原始值。有人可以帮助我。

2 个答案:

答案 0 :(得分:0)

你可以:

  • 使用evalprint eval(deployment['deployAttempted']),但这不是一个好习惯。
  • 使用字典
  • 使用locals()globals()

您可以在SO similar questions找到。通常,像Martijn Pieters评论的那样,字典是更好的选择:

mydict['full_c3_sucess'] = 10
...
print mydict[deployment['deployAttempted']]

答案 1 :(得分:-1)

您可以使用globals()locals()按名称访问全局变量和本地变量:locals()[format + "_sucess"]