Python | __import__() function

While writing a code, there might be a need for some specific modules. So we import those modules by using a single line code in Python.

But what if the name of the module needed is known to us only during runtime? How can we import that module? One can use the Python’s inbuilt __import__() function. It helps to import modules in runtime also.

Syntax: __import__(name, globals, locals, fromlist, level)

Parameters:
name : Name of the module to be imported
globals and locals : Interpret names
formlist : Objects or submodules to be imported (as a list)
level : Specifies whether to use absolute or relative imports. Default is -1(absolute and relative).

Example #1 :

filter_none

edit
close

play_arrow

link
brightness_4
code

# importing numpy module
# it is equivalent to "import numpy"
np = __import__('numpy', globals(), locals(), [], 0)
  
# array from numpy
a = np.array([1, 2, 3])
  
# prints the type
print(type(a))

chevron_right


Output :

<class 'numpy.ndarray'>

 
Example #2 :
Both the following statements has same meaning and does the same work.

filter_none

edit
close

play_arrow

link
brightness_4
code

# from numpy import complex as comp, array as arr
np = __import__('numpy', globals(), locals(), ['complex', 'array'], 0)
  
comp = np.complex
arr = np.array

chevron_right


 
Application :
__import__() is not really necessary in everyday Python programming. Its direct use is rare. But sometimes, when there is a need of importing modules during the runtime, this function comes quite handy.



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.