我的python代码中有一些预定义的词典,例如:
Parameter_A = {'Alpha':0.31, 'Beta':0.69}
Parameter_B = {'Alpha':0.55, 'Beta':0.75}
在执行python脚本( foo.py )期间,我指的是我想要使用的所选参数字典(即 Parameter_ A 或参数_ B )。像:
python foo.py A
在python脚本中我有:
var = sys.argv[1]
Param = 'Parameter_' + var
该行(在脚本中)
print 'Param = ', Param
给出输出:
Param = Parameter_A
但是,当我尝试使用此方法访问字典中的元素时,
Param['Alpha']
我收到错误:
NameError: name 'Param' is not defined
我可以在这种方法中看到' Param' (其字符串Parameter_A作为其值)的类型为' str'。
但是,我真的很感激,如果有人能告诉我如何能够采取“A'或者' B'作为命令行参数,用于指示我的代码应使用的两个词典中的哪一个(Parameter_A或Parameter_B)。
答案 0 :(得分:1)
请注意,Param = 'Parameter_' + var
只会创建一个字符串Parameter_A
而不是Parameter_A
的值,无论如何,在阅读您的代码时,为了创建类似的内容,您可以使用{{ 1}}或globals
。
使用全局
eval
使用eval
var = sys.argv[1]
Param = globals()['Parameter_' + var]
# here you are refering `Prameter_A` as `Param`
print 'Param = ', Param
print 'Param[Alpha] = ', Param['Alpha']