Max Most: Python: Verständnisprobleme mit import/__init__.py

Beitrag lesen

Hi,

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.

Jap. Mit all innerhalb der Module definiert man, welche Funktionen, Klassen usw. innerhalb dieses Moduls von * umfaßt werden. Eine Definition wie all = ["baz", "boo"] innerhalb von bar/init.py sollte in diesem Fall keinen Unterschied machen.

Mal abgesehen von deinem konkreten Fall: Du kannst Module auch mit einem Alias importieren.

Habe das bisher auch immer so gehandhabt. Wäre in meinem konkreten Fall aber weit unschöner als einfach "import package", und ich stoße hier auch zum ersten Mal auf Probleme mit circular imports, die ich mit einem simplen "import package" nicht haben sollte, wenn ich das richtig verstehe. Wenn.

Grüße, Max