PyDev behaviour

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

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
[url=http://www.proandkon.com]proandkon.com[/url]
Benutzeravatar
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 ;)
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

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
the-wiz
User
Beiträge: 8
Registriert: Mittwoch 13. Mai 2009, 16:58

Könnte mir vielleicht jemand sagen, was diese Python-Pakete sind?
BlackJack

Pakete sind eine Möglichkeit Programme zu strukturieren, indem man mehrere zusammengehörende Module in einem Paket zusammen fasst. Die Dokumentation weiss mehr.
Antworten