Wenn i Module zu importieren, das verschachtelte Szenario funktioniert gut. Aber wenn ich versuche, Pakete zu importieren, habe ich ein inkonsistentes Ergebnis. Hier ist der sehr einfache Fall:Python: importierte Pakete mit ‚verschachtelt‘ Module
Inhalt meiner aktuellen Ordner:
mypackages <directory>
__init__.py
one.py
two.py
three.py
dies ist das Skript:
__init__.py :
import one
one.py :
import two
two.py :
import three
Ich erwarte, dass ich in der Lage sein sollte, den Zugriff auf zwei und drei auf diese Weise:
import mypackages
mypackages.one.two
mypackages.one.two.three
oder der logische Pegel in anderen Worten shoul so aussehen:
one
two
three
Aber wenn ich mypackages Import zu tun, ich habe alle auf dem gleichen Niveau ausgesetzt Module:
>>> import mypackages
>>> print dir(mypackages)
['__builtins__', '__doc__', '__file__', '__name__', '__package__',
'__path__', 'one', 'three', 'two']
Es sollte zeige nur one
Modul, richtig? Ich bin verwirrt, warum es zeigt alle one , two
und three
was bedeutet, sie auf dem gleichen Niveau sind (i mypackages.two und mypackages.three direkt verwenden können).
Hat jemand eine explaination?