Zugriff auf __init__.py in Packages

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.
Benutzeravatar
leoel
User
Beiträge: 36
Registriert: Dienstag 25. Mai 2004, 08:54
Wohnort: Graz

Zugriff auf __init__.py in Packages

Beitragvon leoel » Mittwoch 2. Juni 2004, 12:27

Hallo!

Habe testhalber mal ein eigenes Package erstellt (unter site-packages ein Unterverzeichnis) und ein entsprechendes __init__.py file erstellt, damit das ganze auch als Package erkenntlich ist. Ich hab mir so angeschaut, was in diesen Files bei anderen Packages steht, ist oft leer, manchmal stehen Config-Einstellunge o.ä drinnen.

Beispiel:

Struktur:
site-packages
|- LeoPackage
| ==> __init__.py
| ==> LeoPack.py

LeoPack.py enthält die Klassendefinition für die Klasse LeoPack
__init__.py enthält nur folgenden Code:

Code: Alles auswählen

 __version = '0.0.1'


Wenn ich nun in einem Script folgendes schreibe

test_package.py:

Code: Alles auswählen

import LeoPackage
print LeoPackage.__version


dann funktioniert das wunderbar

Allerdings kann ich nicht von der Klasse LeoPack
auf die Variable __version aus dem __init__.py
zugreifen, selbst wenn ich vor der Klasse
folgenden import mache:

Code: Alles auswählen

import LeoPackage


geht das nicht. Ich bekomme immer nur die Fehlermeldung (wenn ich in der Klasse LeoPack drauf zugreifen will (LeoPackage.__version) dass er das nicht kennt.

Weiss jemand bescheid, wie ich das lösen kann?

Danke, Leo[/code]
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Beitragvon Milan » Mittwoch 2. Juni 2004, 15:37

Hi. Das wird so auch nicht gehen. Schließlich ist LeoPackage.__version ja auch eine Ebene höher als LeoPackage.LeoPack.LeoPack ... auf unsaubere Art und Weise könntest du das hier machen:

Code: Alles auswählen

from __init__ import __version


wie es sauber geht weiß ich allerdings nicht...
Benutzeravatar
leoel
User
Beiträge: 36
Registriert: Dienstag 25. Mai 2004, 08:54
Wohnort: Graz

Beitragvon leoel » Donnerstag 3. Juni 2004, 11:48

Hallo Milan!

Ich dachte immer, man kann nur Files importieren, und nicht
einzelne Objekte aus Files...

lg Leo
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Beitragvon Milan » Donnerstag 3. Juni 2004, 12:04

leoel hat geschrieben:Ich dachte immer, man kann nur Files importieren, und nicht einzelne Objekte aus Files...


Nö. Kannste hier nachschauen: http://docs.python.org/ref/import.html

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder