GNU Info

Info Node: (python2.1-tut.info)More on Modules

(python2.1-tut.info)More on Modules


Next: Standard Modules Prev: Modules Up: Modules
Enter node , (file) or (file)node

More on Modules
===============

A module can contain executable statements as well as function
definitions.  These statements are intended to initialize the module.
They are executed only the _first_ time the module is imported
somewhere.(1)

Each module has its own private symbol table, which is used as the
global symbol table by all functions defined in the module.  Thus, the
author of a module can use global variables in the module without
worrying about accidental clashes with a user's global variables.  On
the other hand, if you know what you are doing you can touch a module's
global variables with the same notation used to refer to its functions,
`modname.itemname'.

Modules can import other modules.  It is customary but not required to
place all `import' statements at the beginning of a module (or script,
for that matter).  The imported module names are placed in the
importing module's global symbol table.

There is a variant of the `import' statement that imports names from a
module directly into the importing module's symbol table.  For example:

     >>> from fibo import fib, fib2
     >>> fib(500)
     1 1 2 3 5 8 13 21 34 55 89 144 233 377

This does not introduce the module name from which the imports are taken
in the local symbol table (so in the example, `fibo' is not defined).

There is even a variant to import all names that a module defines:

     >>> from fibo import *
     >>> fib(500)
     1 1 2 3 5 8 13 21 34 55 89 144 233 377

This imports all names except those beginning with an underscore (`_').

Module Search Path
Compiled Python files
---------- Footnotes ----------

(1)  In fact function definitions are also `statements' that are
`executed'; the execution enters the function name in the module's
global symbol table.


automatically generated by info2www version 1.2.2.9