Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

python

What is ast.Constant(value) in Python?

Abdul Monum

ast.Constant is a class defined in the ast module that is used to express constant literals in Python, such as a number or string in the form of an Abstract Syntax Treetree representation of source code. When the parse() method of ast is called on a Python source code that contains constant literals, the ast.Constant class is invoked and converts the constant literal to a node in an ast tree data structure. The ast.Constant class represents the Constant node type in the ast tree.

Example

import ast
from pprint import pprint

class ConstantVisitor(ast.NodeVisitor):

    def visit_Constant(self,node):
        print('Node type: Constant\nFields: ', node._fields)
        ast.NodeVisitor.generic_visit(self, node)


visitor = ConstantVisitor()
tree = ast.parse('400', mode='eval')
pprint(ast.dump(tree))
visitor.visit(tree)

Explanation

  • We define a ConstantVisitor class that extends from the parent class ast.NodeVisitor. We override the predefined visit_Constant methods in the parent class that receive the Constant node, respectively. In the method, we print the type and the fields inside the node and call the generic_visit() method to invoke the propagation of the visit on the children nodes of the input node.
  • We initialize a visitor object of the class ConstantVisitor.
  • We define a Python expression 400 and send it to the ast.parse() method with mode='eval', which returns the result of the expression after evaluation, and store it in tree.
  • The ast.dump() method returns a formatted string of the tree structure in tree.
  • The visit method available to the visitor objects visits all the nodes in the tree structure.

RELATED TAGS

python

CONTRIBUTOR

Abdul Monum
Copyright ©2022 Educative, Inc. All rights reserved
RELATED COURSES

View all Courses

Keep Exploring