這篇文章主要介紹了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