python eval()函數(shù)使用詳情
一、eval()函數(shù)是什么?
Python的一個(gè)內(nèi)置函數(shù);
返回傳入字符串的表達(dá)式結(jié)果(官方)
二、eval()函數(shù)語法解析

三、eval()函數(shù)應(yīng)用舉例
3.1 eval()基本應(yīng)用舉例

上述例子中,展示了eval()的3個(gè)應(yīng)用:
- 把字符串轉(zhuǎn)化為代碼表達(dá)式求結(jié)果,如
66+72 - 把字符串轉(zhuǎn)化為其它數(shù)據(jù)類型,如字典、列表、元組、集合等
- 傳遞
globals參數(shù)和locals參數(shù),當(dāng)兩個(gè)參數(shù)都存在時(shí),先查找locals參數(shù),再查找globals參數(shù),locals參數(shù)中同名變量會(huì)覆蓋globals中的變量
3.2 eval()危害舉例

上述例子中,eval()將字符串轉(zhuǎn)成表達(dá)式并執(zhí)行,就可以利用其執(zhí)行系統(tǒng)命令,刪除文件等操作。
3.3 ast.literal_eval()替代eval()實(shí)現(xiàn)數(shù)據(jù)類型轉(zhuǎn)換

上述代碼也能完成類型轉(zhuǎn)換,但由于沒有使用eval() ,所以產(chǎn)生的安全風(fēng)險(xiǎn)較小。
literal_eval() 函數(shù):會(huì)判斷需要計(jì)算的內(nèi)容計(jì)算后是不是合法的python類型,如果是則進(jìn)行運(yùn)算,否則就不進(jìn)行運(yùn)算。
總結(jié):
到此這篇關(guān)于python eval()函數(shù)使用詳情的文章就介紹到這了,更多相關(guān)python eval()函數(shù)使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中數(shù)據(jù)類轉(zhuǎn)換為JSON的方法詳解
這篇文章主要介紹了Python中數(shù)據(jù)類轉(zhuǎn)換為JSON的方法詳解的相關(guān)資料,需要的朋友可以參考下2023-09-09
python讀文件保存到字典,修改字典并寫入新文件的實(shí)例
下面小編就為大家分享一篇python讀文件保存到字典,修改字典并寫入新文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04
簡(jiǎn)介Python的collections模塊中defaultdict類型的用法
這里我們來簡(jiǎn)介Python的collections模塊中defaultdict類型的用法,與內(nèi)置的字典類最大的不同在于初始化上,一起來看一下:2016-07-07
Python使用正則表達(dá)式實(shí)現(xiàn)爬蟲數(shù)據(jù)抽取
這篇文章主要介紹了Python使用正則表達(dá)式實(shí)現(xiàn)爬蟲數(shù)據(jù)抽取,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
python 辦公自動(dòng)化——基于pyqt5和openpyxl統(tǒng)計(jì)符合要求的名單
前幾天接到的一個(gè)需求,因?yàn)閷W(xué)校給的名單是青年大學(xué)習(xí)已學(xué)習(xí)的名單,然而要知道未學(xué)習(xí)的名單只能從所有團(tuán)員中再排查一次,過程相當(dāng)麻煩。剛好我也學(xué)過一些操作辦公軟件的基礎(chǔ),再加上最近在學(xué)pyqt5,所以我決定用python寫個(gè)自動(dòng)操作文件的腳本給她用用。2021-05-05

