ast.Slice(lower, upper, step)
is a class defined in the ast
module that expresses Python slicing in the form of an parse()
method of ast
is called on a Python source code that contains the slice operation, the ast.Slice
class is invoked, which expresses the slice operation to a node in an ast
tree data structure. The ast.Slice
class represents the Slice node type in the ast
tree. In the class parameter, lower
contains the starting index where the slicing of the object starts, upper
contains the index up to which the slicing operation takes place, and step
is an optional parameter that indicates the increments to be taken between each index for slicing.
import ast from pprint import pprint class SliceVisitor(ast.NodeVisitor): 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) def visit_Subscript(self, node): print('Node type: Subscript\nFields:', node._fields) ast.NodeVisitor.generic_visit(self, node) visitor = SliceVisitor() tree = ast.parse('a[2:5]') pprint(ast.dump(tree)) visitor.visit(tree)
SliceVisitor
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.visitor
object of the class SliceVisitor
.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
.ast.dump()
method returns a formatted string of the tree structure in tree
. You can observe thevisit
method available to the visitor
object visits all the nodes in the tree structure.RELATED TAGS
CONTRIBUTOR
View all Courses