如何通过执行字符串来获取变量的值?

时间:2018-07-02 09:46:07

标签: python string python-3.x exec

我有以下代码:

a=2
string="a"
b=exec(string)
print(b)

输出:

None

我希望b具有'a'的值,即2我该怎么做?

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()只是执行给定字符串中的代码,因此赋值必须在字符串本身中完成。