是否可以 运行 python 字符串中的变量声明?

Is it possible to run python variable declarations from a string?

这就是我正在寻找的行为...

"a = 2" # execute this line
print a
> 2

我知道 exec 语句,但我需要它在 python 2 和 3 中工作,而 python 3 不允许 exec 创建局部变量。还有其他解决方法吗?

编辑:就像我说的——我知道我不能使用 exec,假定的重复项的公认答案是使用 exec.

我不一定认为这是个好主意...

import ast
def parse_assignment(s):
    lhs,rhs = s.split("=",1)
    globals()[lhs] = ast.literal_eval(rhs)

parse_assignment("hello=5")
print(hello)
parse_assignment("hello2='words'")
print(hello2)
parse_assignment("hello3=[1,'hello']")
print(hello3)

https://repl.it/repls/BiodegradableLiveProgrammer