Ich entschuldige mich für eine weitere __init__.py
-Frage.
Ich habe folgende Paketstruktur:
%Vor% In der obersten Ebene __init__.py
definiere ich: USER='me'
. Wenn ich import contrib
von der Kommandozeile, dann kann ich auf contrib.USER
zugreifen.
Nun möchte ich auf contrib.user
von% connection.py
zugreifen, aber ich kann es nicht tun.
Die oberste Ebene __init__.py
wird aufgerufen, wenn ich from contrib.database import connection
ausstelle, also erstellt Python wirklich den Parameter USER
.
Die Frage ist also: wie Sie auf die Parameter und Variablen zugreifen, die in der obersten Ebene __init__.py
von innerhalb der untergeordneten Elemente deklariert wurden.
Danke.
BEARBEITEN:
Ich weiß, dass Sie import contrib
zu connection.py
hinzufügen können, aber es scheint sich zu wiederholen, da es offensichtlich ist (falsch?), dass Sie connection.py
bereits importiert haben, wenn Sie contrib
benötigen.
Das Hinzufügen von import contrib
zu connection.py
ist der richtige Weg. Ja, das Modul contrib
ist bereits importiert (Sie können es aus sys.modules
herausfinden). Das Problem ist, dass in connection.py kein Verweis auf das Modul aus Ihrem Code vorhanden ist. Wenn Sie einen anderen Import durchführen, erhalten Sie die Referenz. Sie müssen sich keine Gedanken über zusätzliche Ladezeiten machen, da das Modul bereits geladen ist.
Sie müssen contrib
in connection
importieren. Verwenden Sie entweder einen relativen Import ( ..contrib
) oder einen absoluten Import.
Tags und Links python