3

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

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

现在我想使用 eval() 执行它

因此,如果我事先已经给出了 x & y 值,我知道可以这样写:

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

它会很好用。

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

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

我希望将进入 x 和 y 的值来自 b。

我该怎么做呢?

4

2 回答 2

5

你检查过文档eval()吗?您可以使用更多参数来实现此目的。例如:

>>> b = {'x':4,'y':3}
>>> eval("x + y", b)
7
于 2012-05-16T20:20:13.803 回答
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 中不是语句,所以这种情况下不需要)

于 2012-06-01T01:24:41.873 回答