私はそれを知っていた
- eval は
function
- エグゼクティブは
statement
両方の簡単な使い方は次のとおりです。
eval('1+2')
exec 'print 1+2'
しかし、私が理解できない他の使用法があります。
変数を使用して関数名を格納し、この変数を使用して関数を呼び出します
。例:def test(): print 'hello world' func = 'test' func = eval(func) func() # this will call test()
func = eval(func)
返された後に (func) と入力します
<type 'function'>
のドキュメントを読みましたeval
が、eval でこれができる理由がわかりません。変数を使用してモジュール名を格納し、この変数を使用してモジュールをインポートします。
例えば。m = 'sys' exec "import " + m
これが理由ですか:
import module_name
表現ではなくステートメントですか?
and:
eval
式を計算するためだけに
exec
、str でステートメントを実行しますか?