Chapter 17. The Module and Package Design
Python gives us several higher-level constructs to organize software. In Part 1, Pythonic Classes via Special Methods we looked at advanced techniques to use class definitions to properly bind the structure and behavior together. In this chapter, we'll look at modules to encapsulate classes, functions, and global objects. Above the module grouping, we also have packages as a design pattern to group related modules together.
Python makes it very easy to create simple modules. Any time we create a Python file, we're creating a module. As the scope of our designs gets larger and more sophisticated, the use of packages becomes more important to maintain a clear organization among the modules.
We have some specialized modules as well. For a larger application, we may implement a __main__
module. This module must be designed to expose the OS command-line interface to the application. It must also be defined in such a way that it doesn't block the simple...