ast.Assert(test, msg)
is a class defined in the ast
module that is used to express the assert
statement in Python in the form of an
When the parse()
method of ast
is called on a Python source code that contains the assert
keyword, the ast.Assert
class is invoked, which expresses the assert
statement to a node in an ast
tree data structure.
The ast.Assert
class represents the Assert node type in the ast
tree. In the class parameter, test
contains the condition on which the assert
statement is called, and msg
contains any error messages as a result of the assert
statement.
import astfrom pprint import pprintclass AssertVisitor(ast.NodeVisitor):def visit_Assert(self, node):print('Node type: Assert\nFields:', node._fields)ast.NodeVisitor.generic_visit(self, node)def visit_Name(self, node):print('Node type: Name\nFields:', node._fields)ast.NodeVisitor.generic_visit(self, node)def visit_Compare(self, node):print('Node type: Compare\nFields:', node._fields)ast.NodeVisitor.generic_visit(self, node)visitor = AssertVisitor()tree = ast.parse('assert x==y')pprint(ast.dump(tree))visitor.visit(tree)
AssertVisitor
class that extends from the parent class ast.NodeVisitor
. We override the predefined visit_Assert
, visit_Compare
, and visit_Name
methods in the parent class, which receive the Assert
, Compare
, and Name
nodes, respectively. In the method, we print the type and the fields inside the node and call the generic_visit()
method, which invokes the propagation of visit on the children nodes of the input node.visitor
object of the class AssertVisitor
.assert x==y
and send it to the ast.parse()
method, which returns the result of the expression after evaluation, and then stores it in tree
.ast.dump()
method returns a formatted string of the tree structure in tree
.visit
method available to the visitor
object visits all the nodes in the tree structure.Free Resources