ast.Import(names)
is a class defined in the ast
module that is used to express the import
statement in python in the form of an
When the parse()
method of ast
is called on a Python source code that contains the import
keyword, the ast.Import
class is invoked, which expresses the import
statement to a node in an ast
tree data structure.
The ast.Import
class represents the Import node type in the ast
tree. In the class parameter, names
contains the list of alias nodes representing modules that need to be imported.
Note: If the
import
statement is preceded by thefrom
keyword, thenast.ImportFrom
class is invoked instead.
import astfrom pprint import pprintclass ImportVisitor(ast.NodeVisitor):def visit_Import(self, node):print('Node type: Import\nFields:', node._fields)ast.NodeVisitor.generic_visit(self, node)def visit_alias(self, node):print('Node type: alias\nFields:', node._fields)ast.NodeVisitor.generic_visit(self, node)visitor = ImportVisitor()tree = ast.parse('import socket, threading')pprint(ast.dump(tree))visitor.visit(tree)
ImportVisitor
class that extends from the parent class ast.NodeVisitor
. We override the predefined visit_Import
and visit_alias
methods in the parent class, which receive the Import
and alias
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 ImportVisitor
.import socket, threading
and send it to the ast.parse()
method, which returns the result of the expression after evaluation, and 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