使用python ast中存储在._字段属性中的值
这个问题是我工作的结果 我在ast中有一个节点,我想获取它的子节点 .\u字段属性提供节点所有子节点的名称。但是,根据语法节点的不同,对于不同的节点它是不同的 例如,如果节点的类型为BinOp..,则节点._字段将产生('left','op','right')) 因此,要访问node的子级,我必须使用node.left、node.op和node.right 但我想对任何普通节点都这样做 如果我使用node.\u字段,它将给我一个元组。我如何使用这个元组来获得孩子。该节点可以是任何常规节点。因此,我不知道元组之前会是什么样子 代码形式的示例将非常好!使用python ast中存储在._字段属性中的值,python,abstract-syntax-tree,Python,Abstract Syntax Tree,这个问题是我工作的结果 我在ast中有一个节点,我想获取它的子节点 .\u字段属性提供节点所有子节点的名称。但是,根据语法节点的不同,对于不同的节点它是不同的 例如,如果节点的类型为BinOp..,则节点._字段将产生('left','op','right')) 因此,要访问node的子级,我必须使用node.left、node.op和node.right 但我想对任何普通节点都这样做 如果我使用node.\u字段,它将给我一个元组。我如何使用这个元组来获得孩子。该节点可以是任何常规节点。因此,
谢谢 要迭代任意节点的子节点,请使用。要遍历字段,请使用。或者使用
ast.NodeVisitor
或ast.NodeTransformer
来处理树遍历,只需实现与感兴趣的节点相关的方法。感谢您的回复!我编写了以下代码st=ast.parse('5+a')print ast.iter\u child\u nodes(st)。。。。。输出是输出,而不是应该是它的子项。。ast.exprobject@Adwait:这些函数用于迭代,因此请尝试在ast.iter\u child\u节点(st)中对child执行。非常感谢!。。正是我要找的!