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

How to get the value of a variable by executing a string?

我有以下代码:

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

输出:

None

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

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

exec() 只是执行给定字符串中的代码,因此赋值必须在字符串本身中完成。

如果我对你的情况的理解正确,你想在现有变量的上下文中评估来自字符串的一些 python 来源。 内置 eval 函数可用于此目的。

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

总之。你为什么需要那个?肯定有更好的方法来做到这一点。

在您的情况下,您可能可以使用字典来记住值而不是单独的变量。从文件中读取 "names" 后,将此名称用作字典键。

your_dict = {}
your_dict["a"] = 2
string = "a"
b = your_dict[string]
print(b)