当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python ast.AST用法及代码示例


用法:

class ast.AST

这是所有 AST 节点类的基础。实际的节点类派生自Parser/Python.asdl 文件,该文件在下面复制。它们在 _ast C 模块中定义,并在 ast 中重新导出。

为抽象语法中的每个 left-hand 边符号定义了一个类(例如,ast.stmtast.expr)。此外,在right-hand 一侧为每个构造函数定义了一个类;这些类继承自left-hand 侧树的类。例如,ast.BinOp 继承自 ast.expr 。对于具有备选方案的生产规则(又名“sums”),left-hand 侧类是抽象的:只创建特定构造器节点的实例。

ast.T 类的构造函数解析其参数如下:

  • 如果有位置参数,则必须与 T._fields 中的项目一样多;它们将被分配为这些名称的属性。
  • 如果有关键字参数,它们会将相同名称的属性设置为给定值。

例如,要创建和填充 ast.UnaryOp 节点,您可以使用

node = ast.UnaryOp()
node.op = ast.USub()
node.operand = ast.Constant()
node.operand.value = 5
node.operand.lineno = 0
node.operand.col_offset = 0
node.lineno = 0
node.col_offset = 0

或更紧凑的

node = ast.UnaryOp(ast.USub(), ast.Constant(5, lineno=0, col_offset=0),
                   lineno=0, col_offset=0)

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 ast.AST。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。