Some modules have hundreds of different items in them. In cases like that, you might not want to clutter up your global namespace with all those items. There is another way to import a module. Here is the general form:
import moduleName
This statement adds only one name to the current namespace—the name of the module itself. You can then refer to any item inside that module using an expression of this form:
moduleName.itemName
Here is an example, again using the built-in math module. Assume that you have just
started up a new Python session and you have added
nothing to the namespace yet.
>>> dir() ['__builtins__', '__doc__', '__name__'] >>> import math >>> dir() ['__builtins__', '__doc__', '__name__', 'math'] >>> type(math) <type 'module'> >>> math.sqrt(121.0) 11.0 >>> math.pi 3.1415926535897931 >>> math.cos(0.0) 1.0 >>>
As you can see, using this form of import
adds only one name to the namespace, and that name has
type module.
There is one more additional feature of import we should mention. If you want to import
an entire module , but you want to
refer to its contents using a different name M1, use a statement of this form:
M2
importM1asM2
An example:
>>> dir() ['__builtins__', '__doc__', '__name__'] >>> import math as crunch >>> dir() ['__builtins__', '__doc__', '__name__', 'crunch'] >>> type(crunch) <type 'module'> >>> crunch.pi 3.1415926535897931 >>> crunch.sqrt(888.888) 29.81422479287362 >>>
You can apply Python's built-in dir()
function to a module object to find out what names
are defined inside it:
>>> import math >>> dir() ['__builtins__', '__doc__', '__name__', 'math'] >>> dir(math) ['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log', 'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh'] >>>