使用地图中的eval()执行python代码行

时间:2012-05-16 20:16:46

标签: python eval

假设我有一行代码是字符串:

a="print 'x + y = ', x + y"

现在我想使用eval()

执行它

所以,如果我已经给了x& y值,因为我知道可以写:

eval (compile (a,"test.py", "single"))

它会很好用。

但我想从字典中给他们价值。换句话说,如果我有一个词典:

b={'x':4,'y':3}

我想要进入x&你来自b。

我该怎么做?

2 个答案:

答案 0 :(得分:5)

您检查了documentation for eval()吗?您可以使用更多参数来实现此目的。例如:

>>> b = {'x':4,'y':3}
>>> eval("x + y", b)
7

答案 1 :(得分:0)

对于陈述,您应该使用exec

Python 2.x中的

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中的声明,因此在这种情况下不需要)