eval()函式實現將字串轉換為等價的可執行命令,執行乙個字串表示式,並返回表示式的值。
eval
(expression[
,globals[,
locals]]
)
expression–表示式
globals–變數作用域,全域性命名空間
locals–變數作用域,區域性命名空間
eval
('3+4'
)#實現計算3+4運算,返回結果7
eval(""
)#將字串轉換為字典,返回值為字典資料
age=
10eval(""
,locals()
)#傳入區域性變數將字典中age的值設為10
eval(""
,)#以字典的方式傳入全域性變數,將age的值設為18
eval(""
,locals()
,)eval(""
,,locals()
)#變數傳入的先後順序決定起作用的順序
eval()函式將字串表示式的結果作為返回值。
def
my_print()
:print
('hahaha'
)my=
eval
('my_print'
)my(
)
my()與my_print()效果一樣,可以更加靈活的選擇需要執行的函式。
eval()函式要注意安全性,例如可以執行系統命令,刪除檔案等操作。
例如:
eval
('__import__('os').system('ls /資料夾路徑')'
)
可執行相應的系統操作,當我們的程式將input()函式輸入內容執行eval()處理時,使用者可以執行系統命令,對系統來說具有安全隱患。 python中的eval函式
eval 函式用來執行乙個字串表示式,並返回表示式的值。還可以把字串轉化為list tuple dict。eval函式的語法 eval expression globals locals 引數 expression 表示式。globals 變數作用域,如果被提供,必須是乙個字典物件。locals 變...
Python中的eval函式
一 簡介 eval函式就是實現list dict tuple與str之間的轉化,而str函式實現把list dict tuple轉換成字串 1 字串轉化為列表 1 字串轉化為列表 2 a 1,2 3,4 5,6 7,8 9,10 3 print type a 4 b eval a 5print ty...
Python中的eval 函式
python中的eval 函式eval expression,globals none,locals none 官方文件中的解釋是,將字串str當成有效的表示式來求值並返回計算結果。globals和locals引數是可選的,如果提供了globals引數,那麼它必須是dictionary型別 如果提供...