__all__

init.py

__all__ = [module1, module2, module3]

Beliebige Datei:

from somepackage import *

module2.something()

In obigem Beispiel sieht man das das Modul module2 nicht explizit importiert wurde, sondern * aus somepackage (in dem auch module2 liegt).
Da * importiert wurde wurden module1, module2 und module3 die in __all__ stehen importiert.
Ein Modul „module_intern“ welches nicht in __all__ steht würde nicht mit importiert werden.

Importing/Path Shortening

Folgende Paket-Struktur <code> mypackage

  mymodule
      myclass

<code>

Wenn in der __init__.py folgendes gemacht wird

from mymodule import myclass

Kann man in einer beliebigen Datei das hier machen:

import mypackage

bla = mymodule.myclass()

In obigem Beispiel wird also direkt auf myclass zugegriffen obwohl nur das Package importiert wurde und nicht das Modul in dem myclass definiert ist.
Das geht weil __init__.py die Klasse importiert hat.