Python中的exec、eval使用實例

這篇文章主要介紹了Python中的exec、eval使用實例,本文以簡潔的方式總結了Python中的exec、eval做用,並給出實例,須要的朋友能夠參考下函數

經過exec能夠執行動態Python代碼,相似Javascript的eval功能;而Python中的eval函數能夠計算Python表達式,並返回結果(exec不返回結果,print(eval("…"))打印None);ui

複製代碼代碼以下:ip

   
>>> exec("print(\"hello, world\")")
hello, world作用域

 

>>> a = 1
>>> exec("a = 2")
>>> a
2命名空間

 

這裏有個scope(命名空間,做用域)的概念,爲了避免破壞如今的scope,能夠新建一個scope(一個字典)執行exec(Javascript沒有此功能):總結

 

複製代碼代碼以下:命名


>>> scope = {}
>>> exec("a = 4", scope)
>>> a
2
>>> scope['a']
4
   
>>> scope.keys()
dict_keys(['a', '__builtins__'])dict

 

__builtins__包含了全部的內建函數和值;scope

而普通的{}不會包含__builtins__di

複製代碼代碼以下:


>>> 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

相關文章
相關標籤/搜索