Python中的exec、eval使用實(shí)例
通過exec可以執(zhí)行動態(tài)Python代碼,類似Javascript的eval功能;而Python中的eval函數(shù)可以計(jì)算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)文章
python框架Django實(shí)戰(zhàn)商城項(xiàng)目之工程搭建過程圖文詳解
這篇文章主要介紹了python框架Django實(shí)戰(zhàn)商城項(xiàng)目之工程搭建過程,這個項(xiàng)目很像京東商城,項(xiàng)目開發(fā)采用前后端不分離的模式,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-03-03
python識別圖標(biāo)并點(diǎn)擊功能實(shí)現(xiàn)
這篇文章主要介紹了python識別圖標(biāo)并點(diǎn)擊功能實(shí)現(xiàn),本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-07-07
教你用一行Python代碼實(shí)現(xiàn)并行任務(wù)(附代碼)
這篇文章主要介紹了教你用一行Python代碼實(shí)現(xiàn)并行任務(wù)(附代碼),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02
刪除python pandas.DataFrame 的多重index實(shí)例
今天小編就為大家分享一篇刪除python pandas.DataFrame 的多重index實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06
多線程python的實(shí)現(xiàn)及多線程有序性
這篇文章主要介紹了多線程python的實(shí)現(xiàn)及多線程有序性,多線程一般用于同時調(diào)用多個函數(shù),cpu時間片輪流分配給多個任務(wù)2022-06-06

