最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python的exec、eval使用分析

 更新時(shí)間:2017年12月11日 10:10:22   投稿:mengwei  
這篇文章主要介紹了python的exec、eval使用分析,具有一定借鑒價(jià)值,需要的朋友可以參考下。

簡(jiǎn)介

python 動(dòng)態(tài)執(zhí)行字符串代碼片段(也可以是文件), 一般會(huì)用到exec,eval。

exec

exec_stmt ::= "exec" or_expr ["in" expression ["," expression]]

注意:exec 是一個(gè)語(yǔ)法聲明,不是一個(gè)函數(shù).也就是說(shuō)和if,for一樣.

官方文檔對(duì)于exec的解釋

This statement supports dynamic execution of Python code.

exec的第一個(gè)表達(dá)式可以是:

1.代碼字符串
2.文件對(duì)象
3.代碼對(duì)象
4.tuple

前面三種情況差不多,第四種比較特殊最后講

如果忽略后面的可選表達(dá)式,exec后面代碼將在當(dāng)前域執(zhí)行

>>> a=2
>>> exec "a=1"
>>> a
>>> 

如果在表達(dá)式之后使用in選項(xiàng)指定一個(gè)dic,它將作為global和local變量作用域

>>> a=10
>>> b=20
>>> g={'a':6,'b':8}
>>> exec "global a;print a,b" in g
>>>

如果in后詳指定兩個(gè)表達(dá)式,它們將分別用作global和local變量作用域

>>> a=10
>>> b=20
>>> c=20
>>> g={'a':6,'b':8}
>>> l={'b':9,'c':10}
>>> exec "global a;print a,b,c" in g,l
>>>

現(xiàn)在說(shuō)下tuple的情況,這也是導(dǎo)致很多人誤以為exec是一個(gè)函數(shù)的原因。

如果第一個(gè)表達(dá)式是tuple

exec(expr, globals) #它等效與 exec expr in globals
exec(expr, globals, locals) #它等效與 exec expr in globals,locals

eval

eval通常用來(lái)執(zhí)行一個(gè)字符串表達(dá)式,并返回表達(dá)式的值。

eval(expression[, globals[, locals]])

有三個(gè)參數(shù),表達(dá)式字符串,globals變量作用域,locals變量作用域。 其中第二個(gè)和第三個(gè)參數(shù)是可選的。

如果忽略后面兩個(gè)參數(shù),則eval在當(dāng)前作用域執(zhí)行。

>>> a=1
>>> eval("a+1")
>>>

如果指定globals參數(shù)

>>> a=1
>>> g={'a':10}
>>> eval("a+1",g)
>>>

如果指定locals參數(shù)

>>> a=10
>>> b=20
>>> c=20
>>> g={'a':6,'b':8}
>>> l={'b':9,'c':10}
>>> eval("a+b+c",g,l)
>>>

如果要嚴(yán)格限制eval執(zhí)行,可以設(shè)置globals為_(kāi)_builtins__,這樣 這個(gè)表達(dá)式只可以訪問(wèn)__builtin__ module。

總結(jié)

exec,eval給我?guī)?lái)了極大的靈活性,同時(shí)也帶來(lái)了隱含的危險(xiǎn)性, 當(dāng)我們使用它們的時(shí)候應(yīng)該總是記得詳細(xì)指定其執(zhí)行的作用域。

以上就是本文關(guān)于python的exec、eval使用分析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:

Python中eval帶來(lái)的潛在風(fēng)險(xiǎn)代碼分析

Python驗(yàn)證文件是否可讀寫代碼分享

Python文件操作基本流程代碼實(shí)例

如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • Python容器類型使用新手必讀

    Python容器類型使用新手必讀

    本文將介紹一些Python容器類型的使用小技巧,以便更高效地處理數(shù)據(jù)和提升編程技能,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Python常用模塊之requests模塊用法分析

    Python常用模塊之requests模塊用法分析

    這篇文章主要介紹了Python常用模塊之requests模塊用法,結(jié)合實(shí)例形式分析了Python使用requests模塊發(fā)送GET、POST請(qǐng)求及響應(yīng)相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • 利用Python實(shí)現(xiàn)網(wǎng)絡(luò)運(yùn)維自動(dòng)化的實(shí)戰(zhàn)案例

    利用Python實(shí)現(xiàn)網(wǎng)絡(luò)運(yùn)維自動(dòng)化的實(shí)戰(zhàn)案例

    Python作為一種簡(jiǎn)潔而強(qiáng)大的編程語(yǔ)言,已經(jīng)成為網(wǎng)絡(luò)運(yùn)維自動(dòng)化的熱門選擇,本文將介紹如何利用Python實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備配置管理、監(jiān)控和故障排除等自動(dòng)化任務(wù),并提供代碼示例,需要的朋友可以參考下
    2024-03-03
  • linux平臺(tái)使用Python制作BT種子并獲取BT種子信息的方法

    linux平臺(tái)使用Python制作BT種子并獲取BT種子信息的方法

    這篇文章主要介紹了linux平臺(tái)使用Python制作BT種子并獲取BT種子信息的方法,結(jié)合實(shí)例形式詳細(xì)分析了Python BT模塊的安裝及針對(duì)BT種子文件的相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • Pandas之read_csv()讀取文件跳過(guò)報(bào)錯(cuò)行的解決

    Pandas之read_csv()讀取文件跳過(guò)報(bào)錯(cuò)行的解決

    這篇文章主要介紹了Pandas之read_csv()讀取文件跳過(guò)報(bào)錯(cuò)行的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • Python小波變換去噪的原理解析

    Python小波變換去噪的原理解析

    這篇文章主要介紹了Python小波變換去噪,對(duì)于去噪效果好壞的評(píng)價(jià),常用信號(hào)的信噪比(SNR)與估計(jì)信號(hào)同原始信號(hào)的均方根誤差(RMSE)來(lái)判斷,需要的朋友可以參考下
    2021-12-12
  • Python使用稀疏矩陣節(jié)省內(nèi)存實(shí)例

    Python使用稀疏矩陣節(jié)省內(nèi)存實(shí)例

    這篇文章主要介紹了Python使用稀疏矩陣節(jié)省內(nèi)存實(shí)例,矩陣中非零元素的個(gè)數(shù)遠(yuǎn)遠(yuǎn)小于矩陣元素的總數(shù),并且非零元素的分布沒(méi)有規(guī)律,則稱該矩陣為稀疏矩陣,需要的朋友可以參考下
    2014-06-06
  • pandas讀取文件夾下所有excel文件的實(shí)現(xiàn)

    pandas讀取文件夾下所有excel文件的實(shí)現(xiàn)

    最近需要做一個(gè)需求,要求匯總一個(gè)文件夾所有的excel文件,所以本文就來(lái)介紹一下pandas讀取文件夾下所有excel文件的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • PyCharm安裝PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步驟詳解

    PyCharm安裝PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步驟詳解

    這篇文章主要介紹了PyCharm安裝PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步驟,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python中DataFrame中的xs用法

    Python中DataFrame中的xs用法

    本文主要介紹了Python中DataFrame中的xs用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04

最新評(píng)論

阳曲县| 吴堡县| 北安市| 宜宾市| 宁远县| 剑河县| 裕民县| 金寨县| 来安县| 慈利县| 白城市| 双桥区| 理塘县| 澜沧| 许昌县| 雅安市| 卓尼县| 哈尔滨市| 凉城县| 贵定县| 苍南县| 重庆市| 河津市| 扎兰屯市| 香港| 岑巩县| 屏边| 昭平县| 亳州市| 定州市| 乳山市| 安吉县| 宜丰县| 吉林省| 商都县| 紫云| 怀仁县| 深州市| 灵寿县| 墨玉县| 昌都县|