用 exec 和 eval 動態執行程式碼
在 exec 中,如果 globals 是 locals(即它們引用同一個物件),則執行程式碼就像它在模組級別一樣。如果 globals 和 locals 是不同的物件,則執行程式碼就好像它在類體中一樣。
如果傳入 globals 物件,但未指定 __builtins__ 鍵,則 Python 內建函式和名稱將自動新增到全域性範圍。為了抑制執行範圍內的 print 或 isinstance 等功能的可用性,讓 globals 將關鍵 __builtins__ 對映到值 None。但是,這不是安全功能。
不應使用 Python 2 特定語法; Python 3 語法將在 Python 2 中使用。因此,不推薦使用以下表單:<s>
exec objectexec object in globalsexec object in globals, locals