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})

(もちろん、printPython 3 のステートメントではないので、この場合は必要ありません)

于 2012-06-01T01:24:41.873 に答える