掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
源代碼: Lib/codeop.py

革吉網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
codeop 模塊提供了可以模擬Python讀取-執(zhí)行-打印循環(huán)的實用程序,就像在 code 模塊中一樣。因此,您可能不希望直接使用該模塊;如果你想在程序中包含這樣一個循環(huán),你可能需要使用 code 模塊。
這個任務(wù)有兩個部分:
能夠判斷一行輸入是否完成了一個Python語句:簡而言之,告訴我們是否要打印 ‘>>>‘ 或 ‘...‘。
記住用戶已輸入了哪些 future 語句,這樣后續(xù)的輸入可以在這些語句被啟用的狀態(tài)下被編譯。
codeop 模塊提供了分別以及同時執(zhí)行這兩個部分的方式。
只執(zhí)行前一部分:
codeop.compile_command(source, filename=’’, symbol=’single’)
嘗試編譯 source,這應(yīng)當是一個 Python 代碼字符串,并且在 source 是有效的 Python 代碼時返回一個代碼對象。 在此情況下,代碼對象的 filename 屬性將為 filename,其默認值為 ''。 如果 source 不是 有效的 Python 代碼而是有效的 Python 代碼的一個前綴時將返回 None。
如果 source 存在問題,將引發(fā)異常。 如果存在無效的 Python 語法將引發(fā) SyntaxError,而如果存在無效的字面值則將引發(fā) OverflowError 或 ValueError。
symbol 參數(shù)確定 source 是作為一條語句 (對應(yīng)默認值 'single'),作為一系列語句 ('exec') 還是作為一個 expression ('eval') 進行編譯。 任何其他值都將導致引發(fā) ValueError。
備注
解析器有可能(但很不常見)會在到達源碼結(jié)尾之前停止解析并成功輸出結(jié)果;在這種情況下,末尾的符號可能會被忽略而不是引發(fā)錯誤。 例如,一個反斜杠加兩個換行符之后可以跟隨任何無意義的符號。 一旦解析器 API 得到改進將修正這個問題。
class codeop.Compile
這個類的實例具有 __call__() 方法,其簽名與內(nèi)置函數(shù) compile() 相似,區(qū)別在于如果該實例編譯了包含 __future__ 語句的程序文本,則實例會‘記住’并使用已生效的語句編譯所有后續(xù)程序文本。
class codeop.CommandCompiler
這個類的實例具有 __call__() 方法,其簽名與 compile_command() 相似;區(qū)別在于如果該實例編譯了包含 __future__ 語句的程序文本,則實例會‘記住’并使用已生效的語句編譯編譯所有后續(xù)程序文本。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流