假设我有一行代码是一个字符串:
a="print 'x + y = ', x + y"
现在我想使用 eval() 执行它
因此,如果我事先已经给出了 x & y 值,我知道可以这样写:
eval (compile (a,"test.py", "single"))
它会很好用。
但我想从字典中给他们价值。换句话说,如果我有一个字典:
b={'x':4,'y':3}
我希望将进入 x 和 y 的值来自 b。
我该怎么做呢?
你检查过文档eval()
吗?您可以使用更多参数来实现此目的。例如:
>>> b = {'x':4,'y':3}
>>> eval("x + y", b)
7
对于语句,您应该使用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 中不是语句,所以这种情况下不需要)