def _walk_ast(self, node, top=False):
if not hasattr(node, 'parent'):
node.parent = None
node.parents = []
for field, value in ast.iter_fields(node):
if isinstance(value, list):
for index, item in enumerate(value):
if isinstance(item, ast.AST):
self._walk_ast(item)
self._set_parnt_fields(item, node, field, index)
elif isinstance(value, ast.AST):
self._walk_ast(value)
self._set_parnt_fields(value, node, field)
if top:
return ast.walk(node)
评论列表
文章目录