Hallo
Vorausgeschickt sei, dass ich mit Python selbst erst in der Experimentalphase bin.
Angenommen eine Dateistruktur wie die folgende:
foo.py bar/ __init__.py baz.py boo.py
Die init.py enthält sowas wie:
from baz import * from boo import *
Wenn ich das Tutorial an der Stelle richtig verstehe, muss man, um import *
benutzen zu können, irgendwo „oberhalb“ die Liste __all__
mit den Namen der Submodule angelegt haben. Die scheint normalerweise in der init.py zu liegen.
Du machst es anders herum. Du notierst in der init.py den Sternchen-Import und legst erst in dem so aufgerufenen Modul die Liste __all__
an.
import bar.baz print(bar.baz.how_cool())
Aber damit kann ich ehrlich gesagt nicht leben. Simple Funktionsaufrufe wären mir zu lang (module.submodule1.do_something(module.submodule2.get_data())), …
Mal abgesehen von deinem konkreten Fall: Du kannst Module auch mit einem Alias importieren.
import bar.baz as bazz print(bazz.how_cool())
Tschö, Auge
Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
Toller Dampf voraus von Terry Pratchett