exec('print 3')
牧野ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
得到的結(jié)果就是3,而不是print 3。
exec的用法是可以識(shí)別字符串內(nèi)的關(guān)鍵詞語句并運(yùn)行它。
比如這里的'print 3'已經(jīng)是一個(gè)字符串了,但是使用exec就可以識(shí)別print并執(zhí)行print語句打印出3。
不過這個(gè)其實(shí)基本很少用,不過要用的時(shí)候就能派上用場(chǎng)。
(1)eval(str [,globals [,locals ])函數(shù)將字符串str當(dāng)成有效Python表達(dá)式來求值,并返回計(jì)算結(jié)果。
(2)exec()函數(shù)將字符串str當(dāng)成有效的Python表達(dá)式來執(zhí)行,不返回計(jì)算結(jié)果:
比如:
content = eval('%s', content)
print content #打印格式化后的content
exec('a = 1')
pritn a #1
exec(expr, {'x':1,'y':2}) 這句很明顯:30+1+2=33
exec(expr, {'x':1,'y':2}, {'y':3,'z':4})這句:
x傳入的是1,y第一個(gè)傳入的是2,第二次傳的是3將之前的2覆蓋了。所以y是3,z傳入的是4。但是在expr里面重新給z賦值了30,所以結(jié)果是30+1+3=34