ast.BoolOp(op, values)
is a class defined in the ast
module that is used to illustrate boolean expressions in Python in the form of an
When the parse()
method of ast
is called on a Python source code that contains boolean operators and
or or
, the ast.BoolOp(op, values)
class is invoked to convert the boolean expression to an ast
tree data structure.
The op
parameter in the class definition refers to the boolean operators and
or or
in the expression, and values
refers to the values involved in the expression.
Note: Consecutive boolean operations with the same operator, e.g.,
x and y and z
, are collapsed in a single node with all values x,y,z.
import astfrom pprint import pprintclass BoolOpVisitor(ast.NodeVisitor):def visit_BoolOp(self, node):print('Node type: BoolOp\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 = BoolOpVisitor()tree = ast.parse('a and b', mode='eval')pprint(ast.dump(tree))visitor.visit(tree)
BoolOpVisitor
class that extends from the parent class ast.NodeVisitor
. We override the predefined visit_BoolOp
and visit_Name
methods in the parent class, which receive the BoolOp
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 BoolOpVisitor
.a and b
and send it to the ast.parse()
method with mode='eval'
, which returns the result of the expression after evaluation and stores it in tree
.ast.dump()
method returns a formatted string of the tree structure in tree
.visit
method available to the visitor
objects visits all the nodes in the tree structure.Free Resources