亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中eval和exec有什么不一樣

發布時間:2020-08-04 14:45:39 來源:億速云 閱讀:221 作者:清晨 欄目:編程語言

小編給大家分享一下python中eval和exec有什么不一樣,相信大部分人都還不怎么了解,因此分享這篇文章給大家學習,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學習方法吧!

1、eval函數

函數的作用:

計算指定表達式的值。也就是說它要執行的Python代碼只能是單個運算表達式(注意eval不支持任意形式的賦值操作),而不能是復雜的代碼邏輯,這一點和lambda表達式比較相似。

函數定義:

eval(expression, globals=None, locals=None)

參數說明:

expression:必選參數,可以是字符串,也可以是一個任意的code對象實例(可以通過compile函數創建)。如果它是一個字符串,它會被當作一個(使用globals和locals參數作為全局和本地命名空間的)Python表達式進行分析和解釋。

globals:可選參數,表示全局命名空間(存放全局變量),如果被提供,則必須是一個字典對象。

locals:可選參數,表示當前局部命名空間(存放局部變量),如果被提供,可以是任何映射對象。如果該參數被忽略,那么它將會取與globals相同的值。

如果globals與locals都被忽略,那么它們將取eval()函數被調用環境下的全局命名空間和局部命名空間。

返回值:

如果expression是一個code對象,且創建該code對象時,compile函數的mode參數是'exec',那么eval()函數的返回值是None;

否則,如果expression是一個輸出語句,如print(),則eval()返回結果為None;

否則,expression表達式的結果就是eval()函數的返回值;

2、exec函數

函數的作用:

動態執行Python代碼。也就是說exec可以執行復雜的Python代碼,而不像eval函數那么樣只能計算一個表達式的值。

函數定義:

exec(object[, globals[, locals]])

參數說明:

object:必選參數,表示需要被指定的Python代碼。它必須是字符串或code對象。如果object是一個字符串,該字符串會先被解析為一組Python語句,然后在執行(除非發生語法錯誤)。如果object是一個code對象,那么它只是被簡單的執行。

globals:可選參數,同eval函數

locals:可選參數,同eval函數

返回值:

exec函數的返回值永遠為None.

需要說明的是在Python 2中exec不是函數,而是一個內置語句(statement),但是Python 2中有一個execfile()函數。可以理解為Python 3把exec這個statement和execfile()函數的功能夠整合到一個新的exec()函數中去了。

Eval()函數與exec函數的區別

eval()函數只能計算單個表達式的值,而exec()函數可以動態運行代碼段。

eval()函數可以有返回值,而exec()函數返回值永遠為None。

eval:

可以把字符串里的字符轉換為可執行代碼,但只支持一行字符。可以返回執行后得到的值。如下:

f = "3+6+9+8"
s = eval(f)
print(s)

輸出:

"C:\Program Files\python3\python3.exe" D:/codes_py3/luhy_tool/string_utils/mymethod.py
26

exec:

可以把字符串里的字符轉換為可執行代碼,可以支持多行字符。但是拿不到返回結果。如下:

code = '''
def func():
    print('test')
    return 555
func()
'''
 
f = exec(code)
print('---'*5)
print(f)

 輸出:

"C:\Program Files\python3\python3.exe" D:/codes_py3/luhy_tool/string_utils/mymethod.py
test
---------------
None

以上是python中eval和exec有什么不一樣的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿鲁科尔沁旗| 普安县| 武汉市| 新宁县| 河北省| 页游| 苍南县| 丰台区| 西吉县| 普兰县| 呼和浩特市| 琼中| 广宁县| 修水县| 江北区| 武穴市| 江山市| 聂拉木县| 类乌齐县| 延寿县| 冀州市| 连城县| 衢州市| 尖扎县| 若尔盖县| 汶川县| 蚌埠市| 斗六市| 梅州市| 江都市| 肇东市| 棋牌| 永修县| 平度市| 纳雍县| 呼和浩特市| 琼结县| 广平县| 舞阳县| 剑阁县| 望谟县|