Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python ast中存储在._字段属性中的值_Python_Abstract Syntax Tree - Fatal编程技术网

使用python ast中存储在._字段属性中的值

使用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中有一个节点,我想获取它的子节点

.\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执行
。非常感谢!。。正是我要找的!