日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:code—-解釋器基類

code —- 解釋器基類

源代碼: Lib/code.py

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供克什克騰網(wǎng)站建設(shè)、克什克騰做網(wǎng)站、克什克騰網(wǎng)站設(shè)計、克什克騰網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、克什克騰企業(yè)網(wǎng)站模板建站服務(wù),10多年克什克騰做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。


code 模塊提供了在 python 中實現(xiàn) read-eval-print 循環(huán)的功能。它包含兩個類和一些快捷功能,可用于構(gòu)建提供交互式解釋器的應(yīng)用程序。

class code.InteractiveInterpreter(locals=None)

這個類處理解析器和解釋器狀態(tài)(用戶命名空間的);它不處理緩沖器、終端提示區(qū)或著輸入文件名(文件名總是顯示地傳遞)??蛇x的 locals 參數(shù)指定一個字典,字典里面包含將在此類執(zhí)行的代碼;它默認創(chuàng)建新的字典,其鍵 '__name__' 設(shè)置為 '__console__' ,鍵 '__doc__' 設(shè)置為 None 。

class code.InteractiveConsole(locals=None, filename=’)

盡可能模擬交互式 Python 解釋器的行為。此類建立在 InteractiveInterpreter 的基礎(chǔ)上,使用熟悉的 sys.ps1sys.ps2 作為輸入提示符,并有輸入緩沖。

code.interact(banner=None, readfunc=None, local=None, exitmsg=None)

運行一個 read-eval-print 循環(huán)的便捷函數(shù)。這會創(chuàng)建一個新的 InteractiveConsole 實例。如果提供了 readfunc ,會設(shè)置為 InteractiveConsole.raw_input() 方法。如果提供了 local ,則將其傳遞給 InteractiveConsole 的構(gòu)造函數(shù),以用作解釋器循環(huán)的默認命名空間。然后,如果提供了 bannerexitmsg ,實例的 interact() 方法會以此為標(biāo)題和退出消息??刂婆_對象在使用后將被丟棄。

在 3.6 版更改: 加入 exitmsg 參數(shù)。

code.compile_command(source, filename=’, symbol=’single’)

這個函數(shù)主要用來模擬 Python 解釋器的主循環(huán)(即 read-eval-print 循環(huán))。難點的部分是當(dāng)用戶輸入不完整命令時,判斷能否通過之后的輸入來完成(要么成為完整的命令,要么語法錯誤)。該函數(shù) 幾乎 和實際的解釋器主循環(huán)的判斷是相同的。

source 是源字符串;filename 是可選的用作讀取源的文件名,默認為 '';symbol 是可選的語法開啟符號,應(yīng)為 'single' (默認), 'eval''exec'

如果命令完整且有效則返回一個代碼對象 (等價于 compile(source, filename, symbol));如果命令不完整則返回 None;如果命令完整但包含語法錯誤則會引發(fā) SyntaxError 或 OverflowError 而如果命令包含無效字面值則將引發(fā) ValueError。

交互解釋器對象

InteractiveInterpreter.runsource(source, filename=’, symbol=’single’)

在解釋器中編譯并運行一段源碼。 所用參數(shù)與 compile_command() 一樣;filename 的默認值為 '',symbol 則為 'single'。 可能發(fā)生以下情況之一:

  • 輸入不正確;compile_command() 引發(fā)了一個異常 (SyntaxError 或 OverflowError)。 將通過調(diào)用 showsyntaxerror() 方法打印語法回溯信息。 runsource() 返回 False

  • 輸入不完整,需要更多輸入;函數(shù) compile_command() 返回 None 。方法 runsource() 返回 True 。

  • 輸入完整;compile_command() 返回了一個代碼對象。 將通過調(diào)用 runcode() 執(zhí)行代碼(該方法也會處理運行時異常,SystemExit 除外)。 runsource() 返回 False

該返回值用于決定使用 sys.ps1 還是 sys.ps2 來作為下一行的輸入提示符。

InteractiveInterpreter.runcode(code)

執(zhí)行一個代碼對象。當(dāng)發(fā)生異常時,調(diào)用 showtraceback() 來顯示回溯。除 SystemExit (允許傳播)以外的所有異常都會被捕獲。

有關(guān) KeyboardInterrupt 的說明,該異??赡馨l(fā)生于此代碼的其他位置,并且并不總能被捕獲。 調(diào)用者應(yīng)當(dāng)準(zhǔn)備好處理它。

InteractiveInterpreter.showsyntaxerror(filename=None)

顯示剛發(fā)生的語法錯誤。 這不會顯示堆?;厮菀驗檎Z法錯誤并無此種信息。 如果給出了 filename,它會被放入異常來替代 Python 解析器所提供的默認文件名,因為它在從一個字符串讀取時總是會使用 ''。 輸出將由 write() 方法來寫入。

InteractiveInterpreter.showtraceback()

顯示剛發(fā)生的異常。 我們移除了第一個堆棧條目因為它從屬于解釋器對象的實現(xiàn)。 輸出將由 write() 方法來寫入。

在 3.5 版更改: 將顯示完整的鏈?zhǔn)交厮?,而不只是主回溯?/p>

InteractiveInterpreter.write(data)

將一個字符串寫入到標(biāo)準(zhǔn)錯誤流 (sys.stderr)。 所有派生類都應(yīng)重載此方法以提供必要的正確輸出處理。

交互式控制臺對象

InteractiveConsole 類是 InteractiveInterpreter 的子類,因此它提供了解釋器對象的所有方法,還有以下的額外方法。

InteractiveConsole.interact(banner=None, exitmsg=None)

近似地模擬交互式 Python 終端。 可選的 banner 參數(shù)指定要在第一次交互前打印的條幅;默認情況下會類似于標(biāo)準(zhǔn) Python 解釋器所打印的內(nèi)容,并附上外加圓括號的終端對象類名(這樣就不會與真正的解釋器混淆 —— 因為確實太像了?。?/p>

可選的 exitmsg 參數(shù)指定要在退出時打印的退出消息。 傳入空字符串可以屏蔽退出消息。 如果 exitmsg 未給出或為 None,則將打印默認消息。

在 3.4 版更改: 要禁止打印任何條幅消息,請傳遞一個空字符串。

在 3.6 版更改: 退出時打印退出消息。

InteractiveConsole.push(line)

將一行源文本推入解釋器。 行內(nèi)容不應(yīng)帶有末尾換行符;它可以有內(nèi)部換行符。 行內(nèi)容會被添加到一個緩沖區(qū)并且會調(diào)用解釋器的 runsource() 方法,附帶緩沖區(qū)內(nèi)容的拼接結(jié)果作為源文本。 如果顯示命令已執(zhí)行或不合法,緩沖區(qū)將被重置;否則,則命令尚未結(jié)束,緩沖區(qū)將在添加行后保持原樣。 如果要求更多輸入則返回值為 True,如果行已按某種方式被處理則返回值為 False (這與 runsource() 相同)。

InteractiveConsole.resetbuffer()

從輸入緩沖區(qū)中刪除所有未處理的內(nèi)容。

InteractiveConsole.raw_input(prompt=’’)

輸出提示并讀取一行。返回的行不包含末尾的換行符。當(dāng)用戶輸入 EOF 鍵序列時,會引發(fā) EOFError 異常。默認實現(xiàn)是從 sys.stdin 讀取;子類可以用其他實現(xiàn)代替。


新聞標(biāo)題:創(chuàng)新互聯(lián)Python教程:code—-解釋器基類
網(wǎng)站URL:http://m.5511xx.com/article/cdgciio.html