pythonでは、文字列で与えられた式を評価する場合
eval
を、使うようです.
>>> eval('a')
Traceback (most recent call last):
File "", line 1, in
File "", line 1, in
NameError: name 'a' is not defined
>>> a = 3.5
>>> eval('a')
3.5
式の中で、代入を行う場合はcompileを使うと良いようです.
eval(compile("c = a+b", "(^.^)", "single"))
hogehogeという変数に値を代入する例
>>> eval(compile("c = 1.111", "(^.^)", "single"))
>>> c
1.111
>>> eval(compile("hogehoge = 1.111", "(^.^)", "single"))
>>> hogehoge
1.111
>>> s = "hogehoge = 'xyzzy'"
>>> s
"hogehoge = 'xyzzy'"
>>> eval(compile(s, "(^.^)", "single"))
>>> hogehoge
'xyzzy'