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.
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)
CompareVisitor
class that extends from the parent class ast.NodeVisitor
. We override the predefined visit_Compare
, visit_Constant
, and visit_Name
methods in the parent class, which receive the Compare
, Constant
, 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 CompareVisitor
.'20 <= a < 30
and send it to the ast.parse()
method, which returns the result of the expression after evaluation, and store the result 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