用法:
eval(expression[, globals[, locals]])
參數是字符串和可選的全局變量和局部變量。如果提供,
globals
必須是字典。如果提供,locals
可以是任何映射對象。expression
參數被解析和評估為 Python 表達式(技術上講,條件列表),使用globals
和locals
字典作為全局和本地命名空間。如果存在globals
字典並且不包含鍵__builtins__
的值,則在解析expression
之前,在該鍵下插入對內置模塊builtins
的字典的引用。這樣,您可以通過將自己的__builtins__
字典插入到globals
中,然後再將其傳遞給eval()
來控製哪些內置函數可用於執行的代碼。如果省略locals
字典,則默認為globals
字典。如果省略兩個字典,則在調用eval()
的環境中使用globals
和locals
執行表達式。請注意,eval()
無權訪問封閉環境中的嵌套範圍(非本地)。返回值是計算表達式的結果。語法錯誤被報告為異常。例子:
>>> x = 1 >>> eval('x+1') 2
此函數還可用於執行任意代碼對象(例如由
compile()
創建的代碼對象)。在這種情況下,傳遞一個代碼對象而不是一個字符串。如果代碼對象已使用'exec'
作為mode
參數進行編譯,則eval()
的返回值將為None
。提示:
exec()
函數支持動態執行語句。globals()
和locals()
函數分別返回當前的全局和本地字典,這對於傳遞以供eval()
或exec()
使用可能很有用。如果給定的源是一個字符串,那麽前導和尾隨空格和製表符將被去除。
請參閱
ast.literal_eval()
,了解可以使用僅包含文字的表達式安全地評估字符串的函數。使用代碼對象作為參數引發審計事件
exec
。也可能引發代碼編譯事件。
相關用法
- Python eval()用法及代碼示例
- Python Wand evaluate()用法及代碼示例
- Python PIL eval()用法及代碼示例
- Python email.message.Message.walk用法及代碼示例
- Python numpy matrix eye()用法及代碼示例
- Python enchant.request_dict()用法及代碼示例
- Python email.headerregistry.DateHeader用法及代碼示例
- Python enum.IntEnum用法及代碼示例
- Python math expm1()用法及代碼示例
- Python enchant.get_enchant_version()用法及代碼示例
- Python email.message.EmailMessage.add_header用法及代碼示例
- Python emoji轉text用法及代碼示例
- Python enchant.request_pwl_dict()用法及代碼示例
- Python email.utils.getaddresses用法及代碼示例
- Python email.header.decode_header用法及代碼示例
- Python email.message.EmailMessage.walk用法及代碼示例
- Python exponential轉float用法及代碼示例
- Python enchant.Dict()用法及代碼示例
- Python email.message.Message.add_header用法及代碼示例
- Python enum.auto()用法及代碼示例
注:本文由純淨天空篩選整理自python.org大神的英文原創作品 eval。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。