« twisted リンク | メイン | Rによる二次計画法 »

[python] eval

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'

トラックバック

このエントリーのトラックバックURL:
http://blogs.topaz.ne.jp/mt/MT-3.37-ja/mt-tb.cgi/256