用 exec 和 eval 動態執行程式碼

exec 中,如果 globalslocals(即它們引用同一個物件),則執行程式碼就像它在模組級別一樣。如果 globalslocals 是不同的物件,則執行程式碼就好像它在類體中一樣

如果傳入 globals 物件,但未指定 __builtins__ 鍵,則 Python 內建函式和名稱將自動新增到全域性範圍。為了抑制執行範圍內的 printisinstance 等功能的可用性,讓 globals 將關鍵 __builtins__ 對映到值 None。但是,這不是安全功能。

不應使用 Python 2 特定語法; Python 3 語法將在 Python 2 中使用。因此,不推薦使用以下表單:<s>

  • exec object
  • exec object in globals
  • exec object in globals, locals