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 <<<


分享到:


相關文章: