python eval()函數(shù)使用詳情
一、eval()函數(shù)是什么?
Python
的一個內(nèi)置函數(shù);
返回傳入字符串的表達式結(jié)果(官方)
二、eval()函數(shù)語法解析
三、eval()函數(shù)應(yīng)用舉例
3.1 eval()基本應(yīng)用舉例
上述例子中,展示了eval()的3個應(yīng)用:
- 把字符串轉(zhuǎn)化為代碼表達式求結(jié)果,如
66+72
- 把字符串轉(zhuǎn)化為其它數(shù)據(jù)類型,如字典、列表、元組、集合等
- 傳遞
globals
參數(shù)和locals
參數(shù),當(dāng)兩個參數(shù)都存在時,先查找locals
參數(shù),再查找globals
參數(shù),locals
參數(shù)中同名變量會覆蓋globals
中的變量
3.2 eval()危害舉例
上述例子中,eval()
將字符串轉(zhuǎn)成表達式并執(zhí)行,就可以利用其執(zhí)行系統(tǒng)命令,刪除文件等操作。
3.3 ast.literal_eval()替代eval()實現(xiàn)數(shù)據(jù)類型轉(zhuǎn)換
上述代碼也能完成類型轉(zhuǎn)換,但由于沒有使用eval()
,所以產(chǎn)生的安全風(fēng)險較小。
literal_eval()
函數(shù):會判斷需要計算的內(nèi)容計算后是不是合法的python
類型,如果是則進行運算,否則就不進行運算。
總結(jié):
到此這篇關(guān)于python eval()
函數(shù)使用詳情的文章就介紹到這了,更多相關(guān)python eval()
函數(shù)使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
django和vue實現(xiàn)數(shù)據(jù)交互的方法
今天小編就為大家分享一篇django和vue實現(xiàn)數(shù)據(jù)交互的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08深入解析Python中的descriptor描述器的作用及用法
在Python中描述器也被稱為描述符,描述器能夠?qū)崿F(xiàn)對對象屬性的訪問控制,下面我們就來深入解析Python中的descriptor描述器的作用及用法2016-06-06