Hallo zusammen
Wenn jemand auch mit PyDev in Eclipse arbeitet, kann er mir vielleicht kurz sagen woher in jedem neuen package das ich erstelle, per default ein __init__.py modul kommt? Was bringt das, bzw. wofür kann ich das nutzen, wenn ich möchte? Bin sicher, es hat einen Sinn, den ich gerade nicht peile...
Gruss mzh
PyDev behaviour
[url=http://www.proandkon.com]proandkon.com[/url]
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Nur ein Ordner mit `__init__.py` wird vom Interpreter auch als Paket anerkannt. Drinstehen muss aber nichts.
Nutzen kannst du das für Initialisierungen, denn das Skript wird IMO ausgeführt wenn ein Modul des Pakets importiert wird.
Beim Überfliegen der PEPs ist mir da leider keins ins Auge gestochen, vllt wirst du da trotzdem fündig. Ansonsten hat Google bestimmt auch Infos
Nutzen kannst du das für Initialisierungen, denn das Skript wird IMO ausgeführt wenn ein Modul des Pakets importiert wird.
Beim Überfliegen der PEPs ist mir da leider keins ins Auge gestochen, vllt wirst du da trotzdem fündig. Ansonsten hat Google bestimmt auch Infos
Die __init__.py-Dateien müssen so sein. Sie machen Verzeichnisse zu Moduln, die man importieren kann. Hat man eine Datei "a.py" und schreibt in seinem Programm "import a", wird diese Datei als Modul eingelesen. Hat man ein Verzeichnis "b" und darin die Datei "b/__init__.py" und schreibt in seinem Programm "import b", dann wird eben diese __init__.py-Datei als Modul gelesen. Wenn man in dem Verzeichnis "b" auch noch eine Datei "b/c.py" hat, kann man diese dann mit "import b.c" importieren. Gibt es in "b" ein Verzeichnis "d" und man will "import b.d" schreiben, was muss dann in d für eine Datei existieren?
Stefan
Stefan
Pakete sind eine Möglichkeit Programme zu strukturieren, indem man mehrere zusammengehörende Module in einem Paket zusammen fasst. Die Dokumentation weiss mehr.