What is ast.Compare(left, ops, comparators) in Python?
ast.Compare(left, ops, comparators) is a class defined in the ast module that expresses a comparison condition in Python in the form of an parse() method of ast is called on a Python source code that contains a comparison of two or more Python objects, the ast.Compare class is invoked, which expresses the comparison expression to a node in an ast tree data structure. The ast.Compare class represents the Compare node type in the ast tree. In the class parameter, left contains the first value in the comparison, ops is the list of operators in the comparison expression, and comparators is the list of values after the first value in the comparison.
Example
import astfrom pprint import pprintclass CompareVisitor(ast.NodeVisitor):def visit_Compare(self, node):print('Node type: Compare\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_Constant(self, node):print('Node type: Constant\nFields:', node._fields)ast.NodeVisitor.generic_visit(self, node)visitor = CompareVisitor()tree = ast.parse('20 <= a < 30')pprint(ast.dump(tree))visitor.visit(tree)
Explanation
- We define a
CompareVisitorclass that extends from the parent classast.NodeVisitor. We override the predefinedvisit_Compare,visit_Constant, andvisit_Namemethods in the parent class, which receive theCompare,Constant, 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 classCompareVisitor. - We write the Python statement
'20 <= a < 30and send it to theast.parse()method, which returns the result of the expression after evaluation, and store the result 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 ©2025 Educative, Inc. All rights reserved