是否可以 运行 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)
这就是我正在寻找的行为...
"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)