Auge: Python: Verständnisprobleme mit import/__init__.py

Beitrag lesen

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