ast.Raise(exc, cause)
is a class defined in the ast
module that is used to express the raise
statement in Python in the form of an
When the parse()
method of ast
is called on a Python source code that contains the assert
keyword, the ast.Raise
class is invoked, which expresses the raise
statement to a node in an ast
tree data structure.
The ast.Raise
class represents the Raise node type in the ast
tree. In the class parameter, exc
contains the exception object that needs to be raised. The cause
is an optional parameter when the from
keyword is part of the raise statement. For example, when a statement like raise x from y
is encountered, then the ast.Raise
class is invoked with the cause
parameter, which will hold y
.
import astfrom pprint import pprintclass RaiseVisitor(ast.NodeVisitor):def visit_Raise(self, node):print('Node type: Raise\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 = RaiseVisitor()tree = ast.parse('raise NotImplementedError')pprint(ast.dump(tree))visitor.visit(tree)
RaiseVisitor
class that extends from the parent class ast.NodeVisitor
. We override the predefined visit_Raise
and visit_Name
methods in the parent class, which receive the Raise
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 RaiseVisitor
.raise NotImplementedError
and send it to the ast.parse()
method, which returns the result of the expression after evaluation, then store it in tree
.ast.dump()
method returns a formatted string of the tree structure in tree
.visit
method available to the visitor
object visits all the nodes in the tree structure.Free Resources