您好,登錄后才能下訂單哦!
今天的 Python學習教程想跟大家說一下exec執行函數
exec 函數功能:執行儲存在字符串或文件中的 Python 語句,相比于 eval,exec可以執行更復雜的 Python 代碼。
英文解釋
This function supports dynamic execution of Python code. object must be either a string or a code object. If it is a string, the string is parsed as a suite of Python statements which is then executed (unless a syntax error occurs). If it is a code object, it is simply executed. In all cases, the code that’s executed is expected to be valid as file input (see the section “File input” in the Reference Manual). Be aware that the return and yield statements may not be used outside of function definitions even within the context of code passed to the exec() function. The return value is None.
In all cases, if the optional parts are omitted, the code is executed in the current scope. If only globals is provided, it must be a dictionary, which will be used for both the global and the local variables. If globals and locals are given, they are used for the global and local variables, respectively. If provided, locals can be any mapping object. Remember that at module level, globals and locals are the same dictionary. If exec gets two separate objects as globals and locals, the code will be executed as if it were embedded in a class definition.
If the globals dictionary does not contain a value for the key __builtins__, a reference to the dictionary of the built-in module builtins is inserted under that key. That way you can control what builtins are available to the executed code by inserting your own __builtins__ dictionary into globals before passing it to exec().
注意: 在 Python2 中exec不是函數,而是一個內置語句(statement),但是Python 2中有一個 execfile() 函數。可以理解為 Python 3 把 exec 這個 statement 和 execfile() 函數的功能夠整合到一個新的 exec() 函數中去了。
所以類似功能的函數在python2中是execfile。
適用版本
Python3.x
語法
以下是 exec 的語法:
exec(object[, globals[, locals]])
參數
object:必選參數,表示需要被指定的Python代碼。它必須是字符串或code對象。如果object是一個字符串,該字符串會先被解析為一組Python語句,然后在執行(除非發生語法錯誤)。如果object是一個code對象,那么它只是被簡單的執行。
globals:可選參數,表示全局命名空間(存放全局變量),如果被提供,則必須是一個字典對象。
locals:可選參數,表示當前局部命名空間(存放局部變量),如果被提供,可以是任何映射對象。如果該參數被忽略,那么它將會取與globals相同的值。
返回值
exec 返回值永遠為 None。
實例
>>>exec 'print "Hello Python"' Hello Python # 單行語句字符串 >>> exec "print 'pythontab.com'" pythontab.com # 多行語句字符串 >>> exec """for i in range(5): ... print "iter time: %d" % i ... """ iter time: 0 iter time: 1 iter time: 2 iter time: 3 iter time: 4
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。