python函式eval的使用與利弊

2021-10-05 22:16:45 字數 969 閱讀 7908

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型別 如果提供...