Chapter 7. Modules
A
typical Python program is made up of several source files. Each
source file corresponds to a module, which
packages program code and data for reuse. Modules are normally
independent of each other so that other programs can reuse the
specific modules they need. A module explicitly establishes
dependencies upon another module by using import
or from statements. In some other programming
languages, global variables can provide a hidden conduit for coupling
between modules. In Python, however, global variables are not global
to all modules, but instead such variables are attributes of a single
module object. Thus, Python modules communicate in explicit and
maintainable ways.
Python also
supports extensions, which are components
written in other languages, such as C, C++, or Java, for use with
Python. Extensions are seen as modules by the Python code that uses
them (called client code). From the client code viewpoint, it does
not matter whether a module is 100% pure Python or an extension. You
can always start by coding a module in Python. Later, if you need
better performance, you can recode some modules in a lower-level
language without changing the client code that uses the modules.
Chapter 24 and Chapter 25 discuss writing extensions in C and Java.
This chapter discusses module creation and loading. It also covers
grouping modules into packages, which are
modules that contain other modules, forming a hierarchical, tree-like
structure. Finally, the chapter discusses using
Python's distribution utilities
(distutils) to prepare packages and modules for
distribution and to install distributed packages and modules.
|