This chapter begins our look at the Python module, the highest-level program organization unit, which packages program code and data for reuse. In concrete terms, modules usually correspond to Python program files (or C extensions). Each file is a module, and modules import other modules to use the names they define. Modules are processed with two new statements and one important built-in function:
Lets a client (importer) fetch a module as a whole
Allows clients to fetch particular names from a module
Provides a way to reload a module’s code without stopping Python
We introduced module fundamentals in Chapter 3, and have been using them ever since. Part V begins by expanding on core module concepts, and then moves on to explore more advanced module usage. This first chapter begins with a general look at the role of modules in overall program structure. In the next and following chapters, we’ll dig into the coding details behind the theory.
Along the way, we’ll flesh out module details
we’ve omitted so far: reloads, the
__all__ attributes, package
imports, and so on. Because modules and classes are really just
glorified namespaces, we formalize namespace concepts here as well.
Modules provide an easy way to organize components into a system, by serving as packages of names. From an abstract perspective, modules have at least three roles:
As we saw in Chapter 3, modules let us save code ...