Package Use

If the __init__ module in a package is empty, the package is little more than a collection of module files. In this case, we don't generally make direct use of a package. We merely mention it in an import statement: import cards.poker.

On other hand, if the __init__ module has some definitions, we can import the package itself. Importing a package just imports the __init__ module from the package directory. In this case, we mention the package in an import statement: import cards.

Even if the __init__ module has some definitions in it, we can always import a specific module from within the package. Indeed, it is possible for the __init__ module in a package is to do things like adjust the search path prior to locating individual module files.