动态生成的variab的访问值

2021-09-27 07:01:40 发布

您现在位置: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条回答
网友
1楼 ·

您可以使用globals()locals()按名称访问全局和局部变量:locals()[format + "_sucess"]。你知道吗

网友
2楼 ·

你可以:

  • 使用evalprint eval(deployment['deployAttempted'])但这不是一个好的做法。你知道吗
  • 使用字典
  • 使用locals()globals()

你可以在SOsimilarquestions上找到。通常,就像Martijn Pieters评论的那样,字典是更好的选择:

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

相关问题