日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:pythoneval和exec的區(qū)別是什么

1、eval函數(shù)

函數(shù)的作用:

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

函數(shù)定義:

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

參數(shù)說明:

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

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

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

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

返回值:

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

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

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

2、exec函數(shù)

函數(shù)的作用:

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

函數(shù)定義:

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

參數(shù)說明:

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

globals:可選參數(shù),同eval函數(shù)

locals:可選參數(shù),同eval函數(shù)

返回值:

exec函數(shù)的返回值永遠為None.

需要說明的是在Python 2中exec不是函數(shù),而是一個內(nèi)置語句(statement),但是Python 2中有一個execfile()函數(shù)??梢岳斫鉃镻ython 3把exec這個statement和execfile()函數(shù)的功能夠整合到一個新的exec()函數(shù)中去了。

Eval()函數(shù)與exec函數(shù)的區(qū)別

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

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

eval:

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

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:

可以把字符串里的字符轉(zhuǎn)換為可執(zhí)行代碼,可以支持多行字符。但是拿不到返回結(jié)果。如下:

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培訓視頻,盡在python學習網(wǎng),歡迎在線學習!


文章名稱:創(chuàng)新互聯(lián)Python教程:pythoneval和exec的區(qū)別是什么
網(wǎng)站路徑:http://m.5511xx.com/article/coeccdc.html