Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

python

What is ast.Subscript(value, slice, ctx) in Python?

Abdul Monum
Abstract Syntax Tree

ast.Subscript(value, slice, ctx) is a class defined in the ast module that expresses subscripted objects in Python 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 the subscripted object, the ast.Subcript class is invoked, which expresses the subscript to a node in an ast tree data structure. The ast.Subscript class represents the Subscript node type in the ast tree. In the class parameter, value contains the subscripted object, slice can be an index, slice, or key, and ctx represents the operation on the subscripted object. The operation can be Load, Store, or Del.

Example

import ast
from pprint import pprint

class SubscriptVisitor(ast.NodeVisitor):

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

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

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

    
    

visitor = SubscriptVisitor()
tree = ast.parse('a[5]')
pprint(ast.dump(tree))
visitor.visit(tree)

Explanation

  • We define a SubscriptVisitor class that extends from the parent class ast.NodeVisitor. We override the predefined visit_Slice, visit_Subscript, and visit_Name methods in the parent class, which receive the Slice, Subscript, 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.
  • We initialize a visitor object of the class SubscriptVisitor.
  • We write the Python statement a[2:5] and send it to the ast.parse() method, which returns the result of the expression after evaluation, and then store the result in tree.
  • The ast.dump() method returns a formatted string of the tree structure in tree. You can observe the
  • The visit method available to the visitor object 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