新聞中心
以下的文章是通過(guò)Python Library: Exec & Compile的相關(guān)實(shí)際操作代碼的介紹來(lái)介紹Python Library在實(shí)際操作的相關(guān)步驟,以下是文章內(nèi)容的具體介紹,希望你在瀏覽完下面的文章會(huì)有所收獲。

直接運(yùn)行代碼字符串也是動(dòng)態(tài)語(yǔ)言的一個(gè)重要特征。雖然在 .NET/C# 里也可通過(guò) CodeDom 實(shí)現(xiàn)類似的功能,但遠(yuǎn)沒(méi) Python 這么方便自由。
- >>> code = """
- def test(s):
- print "test:", s
- a = 123
- """
- >>> exec code
- >>> a
- 123
- >>> test("abc")
- test: abc
內(nèi)置函數(shù)里還有 eval() 和 execfile() 都是用來(lái)做類似事情的。exec 關(guān)鍵字執(zhí)行多行代碼片段,eval() 函數(shù)通常用來(lái)執(zhí)行一條包含返回值的表達(dá)式,而 execfile 自然是用來(lái)執(zhí)行源碼文件了。
- >>> a = 10
- >>> x = eval("a + 3")
- >>> x
- 13
eval() 和 execfile() 都有 "globals, locals" 參數(shù),用于傳遞環(huán)境變量,默認(rèn)或顯式設(shè)置為 None 時(shí)都直接使用 globals() 和 locals() 獲取當(dāng)前作用域的數(shù)據(jù)。
- >>> x = eval("a + b", {}, {})
傳遞空值,使其無(wú)法獲取本地信息
- Traceback (most recent call last):
- File "
", line 1, in - x = eval("a + b", {}, {})
- File "
", line 1, in - NameError: name 'a' is not defined
- >>> x = eval("a + b", {}, { "a":123, "b":2})
顯式傳遞環(huán)境信息
- >>> x
- 125
以上文章的內(nèi)容是對(duì)Python Library的實(shí)際相關(guān)應(yīng)用操作過(guò)程中操作的部分介紹。
【編輯推薦】
- python開(kāi)發(fā)環(huán)境中IDLE的相關(guān)介紹
- 對(duì)Python編程的實(shí)際操作方案的詳細(xì)介紹
- Python編程語(yǔ)言比perl在實(shí)際應(yīng)用中優(yōu)點(diǎn)所在
- Python語(yǔ)法檢查引用PyLint配置的具體方法
- Python代碼在實(shí)際應(yīng)用中的方案簡(jiǎn)介
網(wǎng)站題目:PythonLibrary在實(shí)際操作中具有十分強(qiáng)大的功能
URL地址:http://www.dlmjj.cn/article/dhcggph.html


咨詢
建站咨詢
