python中eval的用法 eval什么意思?
eval什么意思?計(jì)算表達(dá)式并返回結(jié)果。[結(jié)果]=Eval(表達(dá)式)參數(shù)結(jié)果是可選的。是接受返回結(jié)果的變量。如果沒(méi)有指定結(jié)果,請(qǐng)考慮改用execute語(yǔ)句。需要表達(dá)式??梢允前魏斡行BScrip
eval什么意思?
計(jì)算表達(dá)式并返回結(jié)果。[結(jié)果]=Eval(表達(dá)式)參數(shù)結(jié)果是可選的。是接受返回結(jié)果的變量。如果沒(méi)有指定結(jié)果,請(qǐng)考慮改用execute語(yǔ)句。需要表達(dá)式??梢允前魏斡行BScript表達(dá)式的字符串。在VBScript中,x=y有兩種解釋方式。第一種是賦值語(yǔ)句,它將y的值賦給X。第二種解釋是測(cè)試X和y是否相等。如果相等,則結(jié)果為真;否則,結(jié)果為假。Eval總是采用第二種解釋,而execute總是采用第一種解釋。注意到在微軟?JScript腳本? 由于賦值運(yùn)算符(=)與比較運(yùn)算符(=)不同,中的比較運(yùn)算符和賦值運(yùn)算符之間不存在這種混淆。下面的示例演示了each函數(shù)的用法:subguess numberdimguess,rndnumrndnnum=int((100)*RND(1)1)guess=cint(InputBox(“enterprise:”,0))doifeval(“guess=rndnnum”),thenmsgbox“恭喜!猜對(duì)了!函數(shù)的作用是:計(jì)算一個(gè)字符串并執(zhí)行其中的JavaScript代碼。語(yǔ)法:Eval(string)參數(shù)說(shuō)明:string:必需。要計(jì)算的字符串,其中包含要計(jì)算的JavaScript表達(dá)式或要執(zhí)行的語(yǔ)句。返回值:通過(guò)計(jì)算字符串得到的值(如果有)。注意:這個(gè)方法只接受原始字符串作為參數(shù)。如果字符串參數(shù)不是原始字符串,則方法將返回而不做任何更改。因此,不要將字符串對(duì)象作為參數(shù)傳遞給eval()函數(shù)。如果試圖重寫eval屬性或?qū)val()方法賦給另一個(gè)屬性并通過(guò)該屬性調(diào)用它,那么ECMAScript實(shí)現(xiàn)允許拋出evalerror異常。異常:如果參數(shù)中沒(méi)有合法的表達(dá)式或語(yǔ)句,則拋出語(yǔ)法錯(cuò)誤異常。如果非法調(diào)用eval(),則拋出evalerror異常。如果傳遞給eval()的JavaScript代碼生成異常,eval()將異常傳遞給調(diào)用方。提示:雖然Eval()的函數(shù)非常強(qiáng)大,但在實(shí)踐中很少使用。示例1:輸出:
eval什么意思?
使用Eval將字符串轉(zhuǎn)換為JSON時(shí),必須注意字符串必須能夠轉(zhuǎn)換為JSON對(duì)象,否則無(wú)法轉(zhuǎn)換。例如,下面的
可能是JS文件名和另一個(gè)文件名的重復(fù)。
JS中的函數(shù)也可能與另一個(gè)函數(shù)同名。
用jqueryeval()方法把字符串轉(zhuǎn)換為json?
Python Eval方法可以達(dá)到上述要求,具體用途如下。
:將字符串STR作為有效表達(dá)式進(jìn)行求值,并返回求值結(jié)果。
:eval(source[,globals[,Locales
]:
source:必需,compile()返回的python表達(dá)式字符串或代碼對(duì)象
globals:不必需,必須是dictionary
Locales:不必需,任何映射對(duì)象,默認(rèn)值與globals參數(shù)一致
如果沒(méi)有指定globals和locales參數(shù),表達(dá)式將在Eval調(diào)用的環(huán)境中執(zhí)行,即默認(rèn)考慮globals()和locales()的函數(shù),這使得Eval方法存在一定的安全風(fēng)險(xiǎn)。
因此,出于安全原因,最好在轉(zhuǎn)換字符串時(shí)使用函數(shù)。此模塊下的函數(shù)將在計(jì)算后確定要計(jì)算的內(nèi)容是否為合法的Python類型。如果是這樣,將執(zhí)行操作。否則,將不執(zhí)行該操作。