What is ast.Assert(test, msg) in Python?
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.
Example
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)
Explanation
- We define an
AssertVisitorclass that extends from the parent classast.NodeVisitor. We override the predefinedvisit_Assert,visit_Compare, andvisit_Namemethods in the parent class, which receive theAssert,Compare, andNamenodes, respectively. In the method, we print the type and the fields inside the node and call thegeneric_visit()method, which invokes the propagation of visit on the children nodes of the input node. - We initialize a
visitorobject of the classAssertVisitor. - We write the Python statement
assert x==yand send it to theast.parse()method, which returns the result of the expression after evaluation, and then stores it intree. - The
ast.dump()method returns a formatted string of the tree structure intree. - The
visitmethod available to thevisitorobject visits all the nodes in the tree structure.
Free Resources
Copyright ©2026 Educative, Inc. All rights reserved