编译器是如何解析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 <<<
閱讀更多 Python部落 的文章