This module helps applications to process trees of syntax and find out what the current syntax grammar looks like programmatically.
Abstract syntax trees are great tools for program analysis and program transformation systems.
ast.withitem(context_expr, optional_vars) is a class defined in the
ast module that expresses a single context in the
with block in Python in the form of an abstract syntax tree.
parse() method of
ast is called on a Python source code that contains a
with block, the
ast.withitem classes are invoked.
Each context expression in the
with block is expressed as a
withitem node in an
ast tree data structure.
ast.Withclass represents a
Withnode which contains a list of
context_expr: contains a single context manager in a
optional_vars: node representing the
as foo part of
with statement. Often a
Tuple, or a
List node. It is a
None node if there is no
as foo part.
body: list of nodes in the body of the
The following Python code illustrates an example of the
import ast from pprint import pprint class WithItemVisitor(ast.NodeVisitor): def visit_withitem(self, node): print('\nNode type: withitem\nFields: ', node._fields) self.generic_visit(node) def visit_With(self, node): print('\nNode type: With\nFields: ', node._fields) self.generic_visit(node) def visit_Name(self,node): print('\nNode type: Name\nFields: ', node._fields) ast.NodeVisitor.generic_visit(self, node) visitor = WithItemVisitor() tree = ast.parse(""" with a as b, c as d: ... """) pprint(ast.dump(tree)) visitor.visit(tree)
We define a
WithItemVisitor class that extends from the
ast.NodeVisitor parent class. We override the predefined
visit_Name methods in the parent class, which receive the
Name nodes, respectively.
In these methods, we print the type and the fields inside the node and call the
generic_visit() method to visit the children nodes of the input node.
We initialize a visitor object of the class
WithItemVisitor in line 18.
We write a Python
with block and send it to the
ast.parse() method, which returns the result of the expression after evaluation, and then stores this result in
ast.dump() method returns a formatted string of the tree structure in
tree. You can observe the string returned by the
dump function in the output of the code.
visit method available to the
visitor object visits all the nodes in the tree structure.
View all Courses