Miniast - 一款操作 Python AST 的工具

查看原文

miniast 是一款可以生成 Python AST 的库。在它提供的示例中,可以看到一个等价的 Python 类被转化为被 miniast 提供的几个标记可以表示出来的 Python 代码。miniast 的实例可以用 miniast.sourcify 将其转为 Python 字符串。

衍生思考:这个类很大的意义在于安全地生成代码。由于缺失像 Lisp 的 Macro 一样的东西,一般在做 Python 元编程的时候,我们需要手动拼装 Python 字符串,再使用 eval 来执行。这里面存在被注入攻击的风险。使用像 miniast 这样的工具,可以降低被注入攻击的风险。