What is ast.Invert in Python?
ast.Invert is a class defined in the ast module that extends the ast.UnaryOp class and is used to express the ~ (invert) operator in Python in the form of an parse() method of ast is called on a Python source code that contains a unary operator such as the invert operator, the ast.Invert class is invoked to convert the invert operation to an ast tree data structure.
NOTE:
~is the bitwise NOT operator that inverts all the bits.
Example
import astfrom pprint import pprintclass UnaryOpVisitor(ast.NodeVisitor):def visit_UnaryOp(self, node):print('Node type: UnaryOp\nFields: ', node._fields)self.generic_visit(node)def visit_Constant(self,node):print('Node type: Constant\nFields: ', node._fields)ast.NodeVisitor.generic_visit(self, node)visitor = UnaryOpVisitor()tree = ast.parse('~4000', mode='eval')pprint(ast.dump(tree))visitor.visit(tree)
Explanation
- We define a
UnaryOpVisitorclass that extends from the parent classast.NodeVisitor. We override the predefinedvisit_UnaryOpandvisit_Constantmethods in the parent class, which receive theUnaryOpandConstantnodes, respectively. In the method, we print the type and the fields inside the node and call thegeneric_visit()method, which invokes the propagation of the visit on the children nodes of the input node. - We initialize a
visitorobject of the classUnaryOpVisitor. - We define a Python expression
~4000and send it to theast.parse()method withmode='eval', which returns the result of the expression after evaluation and store 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 ©2025 Educative, Inc. All rights reserved