Packages within packages
Just like you can have directories within directories, you can have packages within other packages. For example, imagine that our my_package
directory contained another directory called my_sub_package
, which itself had an __init__.py
file:
![Packages within packages](https://static.packt-cdn.com/products/9781785884481/graphics/graphics/B05012_3_02.jpg)
As you might expect, you import the modules within a sub-package by prepending the names of the packages that contain it:
from my_package.my_sub_package import my_module my_module.do_something()
There is no limit to how deeply you can nest packages, though in practice it becomes a bit unwieldy if you have too many levels of packages-within-packages. More interestingly, the various packages and sub-packages form a tree-like structure which allows you to organize even the most complex program. For example, a sophisticated business system might be arranged like this:
![Packages within packages](https://static.packt-cdn.com/products/9781785884481/graphics/graphics/B05012_3_03.jpg)
As you can see, this is called a tree-like structure because the packages-within-packages look like the spreading branches of a tree. A tree-like structure like this allows...