Trusted answers to developer questions

What is ast.Set(elts) in Python?

Get Started With Machine Learning

Learn the fundamentals of Machine Learning with this free course. Future-proof your career by adding ML skills to your toolkit — or prepare to land a job in AI or Data Science.

Abstract Syntax tree

ast.Set(elts) is a class defined in the ast module that is used to express Python tuples 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 a set, the ast.Set class is invoked and expresses the set to a node in an ast tree data structure. The ast.Set class represents the Tuple node type in the ast tree. In the class parameter, elts contains the list of nodes representing the elements in the set.

Example

import ast
from pprint import pprint
class SetVisitor(ast.NodeVisitor):
def visit_Set(self, node):
print('Node type: Set\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 = SetVisitor()
tree = ast.parse('{2,4,6}', mode='eval')
pprint(ast.dump(tree))
visitor.visit(tree)

Explanation

  • We define a SetVisitor class that extends from the parent class ast.NodeVisitor. We override the predefined visit_Constant and visit_Set methods in the parent class, which receive the Constant and Set 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 the visit on the children nodes of the input node.
  • We initialize a visitor object of the class SetVisitor.
  • We define a Python set {2,4,6} 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.
  • 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 ©2024 Educative, Inc. All rights reserved
Did you find this helpful?