在Python內(nèi)置特殊函數(shù)eval(),exec,execfile()名字空間
默認(rèn)eval(),exec,execfile()所運(yùn)行的代碼都位于當(dāng)前的名字空間中。eval(), exec,和 execfile()函數(shù)也可接受
一個(gè)或兩個(gè)可選字典參數(shù)作為代碼執(zhí)行的全局名字空間和局部名字空間
Demo:
globals = {'x': 7, 'y': 10, 'birds': ['Parrot', 'Swallow', 'Albatross'] }
locals = { } # 將上邊的字典作為全局和局部名稱(chēng)空間
a = eval("3*x + 4*y", globals, locals)
exec "for b in birds: print b" in globals, locals
注意語(yǔ)法 execfile("foo.py", globals, locals)
exec是一個(gè)語(yǔ)句(就象print或while),
而eval()和execfile()則是內(nèi)建函數(shù).
點(diǎn)擊加載更多評(píng)論>>