我有以下代码:
a=2
string="a"
b=exec(string)
print(b)
输出:
None
我希望b具有'a'的值,即2我该怎么做?
答案 0 :(得分:2)
如果我正确理解了您的情况,则希望在现有变量的上下文中从字符串中评估一些python源。
内置eval
函数可用于此目的。
a=2
string="a"
b=eval(string)
print(b)
无论如何。你为什么需要那个?有更好的方法可以确保做到这一点。
在您的情况下,您可以使用字典来记住值而不是单独的变量。从文件中读取“名称”后,将此名称用作字典键。
your_dict = {}
your_dict["a"] = 2
string = "a"
b = your_dict[string]
print(b)
答案 1 :(得分:1)
a=2
string="b=a"
exec(string)
print(b)
exec()只是执行给定字符串中的代码,因此赋值必须在字符串本身中完成。