Book Image

Mastering Object-oriented Python

By : Steven F. Lott, Steven F. Lott
Book Image

Mastering Object-oriented Python

By: Steven F. Lott, Steven F. Lott

Overview of this book

Table of Contents (26 chapters)
Mastering Object-oriented Python
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Some Preliminaries
Index

Designing a package


One important consideration to design a package is don't. The Zen of Python poem (also known as import this) includes this line:

"Flat is better than nested"

We can see this in the Python Standard Library. The structure of the library is relatively flat; there are few nested modules. Deeply nested packages can be overused. We should be skeptical of excessive nesting.

A package is essentially a directory with an extra file, __init__.py. The directory name must be a proper Python name. OS names include a lot of characters that are not allowed in Python names.

We often see three design patterns for packages:

  • Simple packages are a directory with an empty __init__.py file. This package name becomes a qualifier for the internal module names. We'll use the following code:

    import package.module
  • A module package can have an __init__.py file that is effectively a module definition. This can import other modules from the package directory. Or, it can stand as a part of a larger design...