Python 可執行對象

Python 可執行對象

eval/repr

eval

eval 能夠執行字符串類型的表達式 (或 compile() 建立的代碼對象(code object) ) 並返回執行結果python

eval(expression, globals=None, locals=None)

expression 參數會做爲一個 Python 表達式被解析並求值
globals 和 locals 做爲全局和局部命名空間,globals 實參必須是一個字典,locals 能夠是任何映射對象。
默認爲當前環境,若是隻給了 globals,則默認 locals 與 globals 相同express

repr

返回一個對象的字符串形式返回值,經過這個字符串能夠從新獲取該對象,由於對於許多對象類型 eval(repr(obj)) == obj 成立
類能夠經過定義 __repr__() 方法來控制此函數爲它的實例所返回的內容函數

exec

exec 支持動態執行 Python 代碼,返回值是 Nonecode

exec(object, globals=None, locals=None)

object 爲字符串時,會被解析成 Python 語句執行,爲代碼對象時會被直接執行
globals 和 locals 做爲全局和局部命名空間,globals 實參必須是一個字典,locals 能夠是任何映射對象。
默認爲當前環境對象

compile

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

將 source 編譯成代碼或 AST 對象。代碼對象能夠被 exec()eval() 執行。source 能夠是常規的字符串、字節字符串,或者 AST 對象。
filename 實參須要是代碼讀取的文件名
mode 指定了編譯代碼用的模式。若是 source 是語句序列,能夠是 'exec',使用 eval() 返回值是 None ;若是是單一表達式,能夠是 'eval';若是是單個交互式語句,能夠是 'single'。(在最後一種狀況下,若是表達式執行結果不是 None 將會被打印出來。)字符串

相關文章
相關標籤/搜索