[Python-de] packages und __init__.py

Diez B. Roggisch (by way of Diez B. Roggisch <deets at web.de>) deets at web.de
Die Aug 24 23:20:12 CEST 2004


Hallo,

> Meine Problem ist ein anderes:
> wenn __init__.py leer ist, dann steht in der Applikation:
> from <package>.Interfaces import Container
>
> Das dokumentiert, dass Container im Modul  Interfaces ist.
> Wenn aber __init__.py die Zeile enthält:
> from Interfaces import Container
> dann steht in der Applikation:
> from <package> import Container
>
> Bei fremdem Code wird man vermuten, es gibt ein Modul Container.py.
> Wenn dies nicht der Fall ist, muss ich in __init__.py nachsehen,
> was dort definiert ist.
>
> Das finde ich etwas umständlich bzw. verwirrend.

Das ist Ansichtsache. Wenn der Modulentwickler aus Gruenden des Handlings
 halt verschiedene Files angelegt hat, aber eben so tun will als ob die
 Elemente eine Ebene hoeher verankert sind, dann macht er das halt so - es
 hindert dich ja keiner dran, den anderen import zu verwenden.

Mir geht es eher auf den Zeiger wenn ich aus einem Modul noch Untermodule
importieren muss.

Mit __all__ (wie du selber schon feststelltest) hat das aber garnix zu tun.


MfG Diez