所以基本上,我有一个python程序,但有一点我需要帮助。 当用户输入变量名时,我希望它打印变量值,而不是变量名,即使该变量不存在。这就是我现在所拥有的:
CMD = input(">>>> ")
if CMD[0:17] == "console.printVar(" and CMD[-1:] == ")" and CMD[-2:]!="')":
try:
CMD[13:-1]
except NameError:
print("Variable "+CMD[13:1]+" Not defined")
Main()
else:
print(CMD[17:-1])
Main()
哦,为了防止它不清楚,我正在编写一种编码语言。
答案 0 :(得分:1)
要按名称获取全局变量的值,请使用globals()
字典:
name = CMD[17:-1]
print(globals()[name])
答案 1 :(得分:1)
您可以将本地(函数)作用域作为带有locals()
的dict,将全局(模块)作用域作为带有globals()
的dict。现在你可能想要阅读更多关于解析,AST等...
答案 2 :(得分:-1)
您只需致电eval(CMD[17:-1])
。
但是,这不只是评估变量名称,因此请注意,用户不能对您的代码执行任何恶意操作。