What is ast.BinOp(op, values) in Python?
ast.BinOp(left, op, right) is a class defined in the ast module that is used to express binary operations in Python in the form of an
When the parse() method of ast is called on a Python source code that contains binary operators such as addition or division, the ast.BinOp(left, op, right) class is invoked to convert the binary operation to an ast tree data structure.
The op parameter in the class definition refers to the binary operators such as + or - in the expression, and left and right refer to the values involved in the respective sides of the operator. op can contain the following binary operators:
AddSubMultMatMultDivModPowLShiftRShiftBitOrBitXorBitAndFloorDiv
Example
import astfrom pprint import pprintclass BinOpVisitor(ast.NodeVisitor):def visit_BinOp(self, node):print('Node type: BinOp\nFields: ', node._fields)self.generic_visit(node)def visit_Name(self,node):print('Node type: Name\nFields: ', node._fields)ast.NodeVisitor.generic_visit(self, node)visitor = BinOpVisitor()tree = ast.parse('a / b', mode='eval')pprint(ast.dump(tree))visitor.visit(tree)
Explanation
- We define a
BinOpVisitorclass that extends from the parent classast.NodeVisitor. We override the predefinedvisit_BinOpandvisit_Namemethods in the parent class, which receive theBinOpandNamenodes, 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 classBinOpVisitor. - We define a Python expression
a and band send it to theast.parse()method withmode='eval', which returns the result of the expression after evaluation and stores it intree. - The
ast.dump()method returns a formatted string of the tree structure intree. - The
visitmethod available to thevisitorobjects visits all the nodes in the tree structure.
Free Resources
Copyright ©2026 Educative, Inc. All rights reserved