12.01 Python3.9將支持把AST對象轉換回Python代碼

編譯器是如何解析Python代碼的?這個問題對於很多程序員來說,還是不太清楚的。不過即便你不清楚,在Python中你依舊可以解析Python源代碼,並得到一個封裝好的對象。在這個對象中,你可以遍歷代碼中定義的類和函數。幫你完成這個解析工作的模塊叫做ast,它是一個標準庫模塊,也就是說不用安裝依賴直接可用的。

ast模塊對於我來說有什麼用途呢?是否有一個生動的案例能夠說明下它的使用方法呢?有的,剛好前幾天我們發過一篇有關ast使用的文章,鏈接在這裡:《在Python中從源文件和行號查找定義》

ast模塊可以幫助你把Python源代碼解析成一個AST對象,而Python3.9的一個新特性厲害了,它還能幫你把一個AST對象還原為一段Python源代碼,就像這樣:

<code>>>> import ast/<code>
<code>>>> print(ast.unparse(ast.parse('1 + 1')))/<code><code>(1 + 1)/<code>

有了這個特性,如果你製作代碼工具一類的軟件,就能輕易地在合適的位置顯示所涉及的函數的代碼了。

目前Python3.9剛剛啟動開發,預計明年10月發佈。此特性的Pull Request地址是:https://github.com/python/cpython/pull/17302。CPython項目的Github地址是:https://github.com/python。有興趣的同學可以深入探究下。

>>> 今日簽到口令:dkbk <<<


分享到:


相關文章: