What is ast.Subscript(value, slice, ctx) in Python?
ast.Subscript(value, slice, ctx) is a class defined in the ast module that expresses subscripted objects in Python in the form of an 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 astfrom pprint import pprintclass 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
SubscriptVisitorclass that extends from the parent classast.NodeVisitor. We override the predefinedvisit_Slice,visit_Subscript, andvisit_Namemethods in the parent class, which receive theSlice,Subscript, andNamenodes, respectively. In the method, we print the type and the fields inside the node and call thegeneric_visit()method, which invokes the propagation of visit on the children nodes of the input node. - We initialize a
visitorobject of the classSubscriptVisitor. - We write the Python statement
a[2:5]and send it to theast.parse()method, which returns the result of the expression after evaluation, and then store the result intree. - The
ast.dump()method returns a formatted string of the tree structure intree. You can observe the - The
visitmethod available to thevisitorobject visits all the nodes in the tree structure.
Free Resources
Copyright ©2025 Educative, Inc. All rights reserved