Seite 1 von 1

PyDev behaviour

Verfasst: Mittwoch 13. Mai 2009, 12:49
von mzh
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

Verfasst: Mittwoch 13. Mai 2009, 12:54
von cofi
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 ;)

Verfasst: Mittwoch 13. Mai 2009, 19:18
von sma
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

Verfasst: Mittwoch 13. Mai 2009, 20:41
von the-wiz
Könnte mir vielleicht jemand sagen, was diese Python-Pakete sind?

Verfasst: Mittwoch 13. Mai 2009, 21:06
von BlackJack
Pakete sind eine Möglichkeit Programme zu strukturieren, indem man mehrere zusammengehörende Module in einem Paket zusammen fasst. Die Dokumentation weiss mehr.