欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中的exec、eval使用實(shí)例

 更新時(shí)間:2014年09月23日 11:29:37   作者:iCode0410  
這篇文章主要介紹了Python中的exec、eval使用實(shí)例,本文以簡(jiǎn)潔的方式總結(jié)了Python中的exec、eval作用,并給出實(shí)例,需要的朋友可以參考下

通過(guò)exec可以執(zhí)行動(dòng)態(tài)Python代碼,類(lèi)似Javascript的eval功能;而Python中的eval函數(shù)可以計(jì)算Python表達(dá)式,并返回結(jié)果(exec不返回結(jié)果,print(eval("…"))打印None);

復(fù)制代碼 代碼如下:
  
>>> exec("print(\"hello, world\")")
hello, world

>>> a = 1
>>> exec("a = 2")
>>> a
2

這里有個(gè)scope(命名空間,作用域)的概念,為了不破壞現(xiàn)在的scope,可以新建一個(gè)scope(一個(gè)字典)執(zhí)行exec(Javascript沒(méi)有此功能):

復(fù)制代碼 代碼如下:

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

__builtins__包含了所有的內(nèi)建函數(shù)和值;

而普通的{}不會(huì)包含__builtins__

復(fù)制代碼 代碼如下:

>>> a = {}
>>> a.keys()
dict_keys([])

同exec一樣,eval也可以使用命名空間:

復(fù)制代碼 代碼如下:

>>> result = eval('2+3')
>>> result
5
>>> scope={}
>>> scope['a'] = 3
>>> scope['b'] = 4
>>> result = eval('a+b',scope)
>>> result
7

相關(guān)文章

  • python 單線(xiàn)程和異步協(xié)程工作方式解析

    python 單線(xiàn)程和異步協(xié)程工作方式解析

    這篇文章主要介紹了python 單線(xiàn)程和異步協(xié)程工作方式解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 最新評(píng)論