溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中的parser指的是什么

發(fā)布時間:2020-07-27 09:33:07 來源:億速云 閱讀:2628 作者:清晨 欄目:編程語言

小編給大家分享一下Python中的parser指的是什么,相信大部分人都還不怎么了解,因此分享這邊文章給大家學(xué)習(xí),希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學(xué)習(xí)方法吧!

所謂 parser,一般是指把某種格式的文本(字符串)轉(zhuǎn)換成某種數(shù)據(jù)結(jié)構(gòu)的過程。最常見的 parser,是把程序文本轉(zhuǎn)換成編譯器內(nèi)部的

一種叫做“抽象語法樹”(AST)的數(shù)據(jù)結(jié)構(gòu)。也有簡單一些的 parser,用于處理 CSV,JSON,XML 之類的格式。

舉個例子,一個處理算數(shù)表達(dá)式的 parser,可以把“1+2”這樣的,含有 1,+,2 三個字符的字符串,轉(zhuǎn)換成一個對象(object)。這

個對象就像 new BinaryExpression(ADD, new Number(1), new Number(2)) 這樣的 Java 構(gòu)造函數(shù)調(diào)用生成出來的那樣。

之所以需要做這種從字符串到數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換,是因?yàn)榫幾g器是無法直接操作“1+2”這樣的字符串的。實(shí)際上,代碼的本質(zhì)根本就不是

字符串,它本來就是一個具有復(fù)雜拓?fù)涞臄?shù)據(jù)結(jié)構(gòu),就像電路一樣?!?+2”這個字符串只是對這種數(shù)據(jù)結(jié)構(gòu)的一種“編碼”,就像 ZIP 

或者 JPEG 只是對它們壓縮的數(shù)據(jù)的編碼一樣。

這種編碼可以方便你把代碼存到磁盤上,方便你用文本編輯器來修改它們,然而你必須知道,文本并不是代碼本身。所以從磁盤讀取了文

本之后,你必須先“解碼”,才能方便地操作代碼的數(shù)據(jù)結(jié)構(gòu)。比如,如果上面的 Java 代碼生成的 AST 節(jié)點(diǎn)叫 node,你就可以用

node.operator 來訪問 ADD,用 node.left 來訪問 1,node.right 來訪問 2。這是很方便的。

對于程序語言,這種解碼的動作就叫做 parsing,用于解碼的那段代碼就叫做 parser。

以上是Python中的parser指的是什么的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI