可能重複:
What’s the difference between eval, exec, and compile in Python?在python中eval和exec有什麼區別?
我知道
- EVAL是
function
- EXEC是
statement
而且兩者的簡單的用法是:
eval('1+2')
exec 'print 1+2'
但也有我無法理解其他用途。
使用變量存儲函數的名稱,並使用這個變量來 通話功能
如:def test(): print 'hello world' func = 'test' func = eval(func) func() # this will call test()
I型(FUNC)返回
後
func = eval(func)
<type 'function'>
我讀了eval
的文檔,但是我不知道爲什麼eval可以做 這個。使用變量存儲模塊名稱,並使用此變量導入模塊。
例如。m = 'sys' exec "import " + m
就是這個道理:
import module_name
是一個聲明,而不是體現在哪裏?
和:
eval
只計算表達式
exec
是否在str中運行語句?
@avasal你好,我看過這篇文章,但我不知道我的問題的兩個例子,你可以看到它。 –
@TankyWoo要添加一個新行,請添加兩個空格,然後從下一行開始寫入。 :) – pradyunsg
這個問題詢問有關eval/exec的高級用法,甚至在建議的重複中都沒有提及,它是示例,所以它不是重複的,只是更具體。 –