假设我有一行代码是字符串:
a="print 'x + y = ', x + y"
现在我想使用eval()
执行它所以,如果我已经给了x& y值,因为我知道可以写:
eval (compile (a,"test.py", "single"))
它会很好用。
但我想从字典中给他们价值。换句话说,如果我有一个词典:
b={'x':4,'y':3}
我想要进入x&你来自b。
我该怎么做?
答案 0 :(得分:5)
您检查了documentation for eval()
吗?您可以使用更多参数来实现此目的。例如:
>>> b = {'x':4,'y':3}
>>> eval("x + y", b)
7
答案 1 :(得分:0)
对于陈述,您应该使用exec
:
:
exec "print 'x + y = ', x + y" in {'x':4,'y':3}
Python 3.x中的:
exec("print('x + y = ', x + y)", {'x':4,'y':3})
(当然,print
不是Python 3中的声明,因此在这种情况下不需要)