通過exec可以執行動態Python代碼,類似Javascript的eval功能;而Python中的eval函數可以計算Python表達式,并返回結果(exec不返回結果,print(eval("…"))打印None);
>>> a = 1
>>> exec("a = 2")
>>> a
2
這里有個scope(命名空間,作用域)的概念,為了不破壞現在的scope,可以新建一個scope(一個字典)執行exec(Javascript沒有此功能):
__builtins__包含了所有的內建函數和值;
而普通的{}不會包含__builtins__
同exec一樣,eval也可以使用命名空間:
新聞熱點
疑難解答
圖片精選