Python中的exec、eval使用實例
通過exec可以執(zhí)行動態(tài)Python代碼,類似Javascript的eval功能;而Python中的eval函數(shù)可以計算Python表達(dá)式,并返回結(jié)果(exec不返回結(jié)果,print(eval("…"))打印None);
>>> exec("print(\"hello, world\")")
hello, world
>>> a = 1
>>> exec("a = 2")
>>> a
2
這里有個scope(命名空間,作用域)的概念,為了不破壞現(xiàn)在的scope,可以新建一個scope(一個字典)執(zhí)行exec(Javascript沒有此功能):
>>> scope = {}
>>> exec("a = 4", scope)
>>> a
2
>>> scope['a']
4
>>> scope.keys()
dict_keys(['a', '__builtins__'])
__builtins__包含了所有的內(nèi)建函數(shù)和值;
而普通的{}不會包含__builtins__
>>> a = {}
>>> a.keys()
dict_keys([])
同exec一樣,eval也可以使用命名空間:
>>> result = eval('2+3')
>>> result
5
>>> scope={}
>>> scope['a'] = 3
>>> scope['b'] = 4
>>> result = eval('a+b',scope)
>>> result
7
相關(guān)文章
淺談Python3.10 和 Python3.9 之間的差異
多年來,Python 進(jìn)行了大量升級,并且在新版本中添加了許多功能。本文就詳細(xì)的介紹 一下Python3.10 和 Python3.9差異,感興趣的朋友可以了解一下2021-09-09Python 對輸入的數(shù)字進(jìn)行排序的方法
今天小編就為大家分享一篇Python 對輸入的數(shù)字進(jìn)行排序的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06python GUI庫圖形界面開發(fā)之PyQt5窗口控件QWidget詳細(xì)使用方法
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5窗口控件QWidget詳細(xì)使用方法,需要的朋友可以參考下2020-02-02Python詳細(xì)講解圖像處理的而兩種庫OpenCV和Pillow
這篇文章介紹了Python使用OpenCV與Pillow分別進(jìn)行圖像處理的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06Python可視化mhd格式和raw格式的醫(yī)學(xué)圖像并保存的方法
今天小編就為大家分享一篇Python可視化mhd格式和raw格式的醫(yī)學(xué)圖像并保存的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01Python中的shape[0]、shape[1]和shape[-1]使用方法
shape函數(shù)是Numpy中的函數(shù),它的功能是讀取矩陣的長度,比如shape[0]就是讀取矩陣第一維度的長度,這篇文章主要介紹了Python中的shape[0]、shape[1]和shape[-1]使用方法,需要的朋友可以參考下2023-07-07Python利用matplotlib做圖中圖及次坐標(biāo)軸的實例
今天小編就為大家分享一篇Python利用matplotlib做圖中圖及次坐標(biāo)軸的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07