python中compile的作用_Python compile函数有什么用?
描述
compile() 函數(shù)將一個(gè)字符串編譯為字節(jié)代碼。
語法
以下是 compile() 方法的語法:
compile(source, filename, mode[, flags[, dont_inherit]])
參數(shù)
source -- 字符串或者AST(Abstract Syntax Trees)對(duì)象。。
filename -- 代碼文件名稱,如果不是從文件讀取代碼則傳遞一些可辨認(rèn)的值。
mode -- 指定編譯代碼的種類。可以指定為 exec, eval, single。
flags -- 變量作用域,局部命名空間,如果被提供,可以是任何映射對(duì)象。。
flags和dont_inherit是用來控制編譯源碼時(shí)的標(biāo)志
返回值
返回表達(dá)式執(zhí)行結(jié)果。
>>>str = "for i in range(0,10): print(i)"
>>> c = compile(str,'','exec') # 編譯為字節(jié)代碼對(duì)象
>>> c
at 0x10141e0b0, file "", line 1>
>>> exec(c)
0
1
2
3
4
5
6
7
8
9
>>> str = "3 * 4 + 5"
>>> a = compile(str,'','eval')
>>> eval(a)
17
這種預(yù)編譯會(huì)快點(diǎn)么?還是可以怎么樣?
我直接exec、eval字符串不就得了,為什么要這么多此一舉
還是這樣compile得到的中間變量c有一定的用?
猜測是不是如果某個(gè)字符串要多次exec、eval的話,這樣就只用編譯一次就可以反復(fù)調(diào)用,避免重復(fù)編譯。
還是有其他更有用的地方?
總結(jié)
以上是生活随笔為你收集整理的python中compile的作用_Python compile函数有什么用?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: echarts地图单机下钻双击返回
- 下一篇: python 解析pdf矢量图_如何从P