Seite 1 von 1

Variable in mehreren Modulen verwenden!?

Verfasst: Montag 16. August 2004, 10:54
von t0m
Hallo,

ist es möglich eine Variable in mehreren Modulen zu lesen und zu schreiben? Wenn ich from module imort variable mache, bekomm ich ja nur den Anfangswert so wie ich ihn in das Modul geschrieben hab.

Gibts da eine Lösung? Ich will ungern Ini-Dateien oä verwenden :)

mfg,
Tom

Re: Variable in mehreren Modulen verwenden!?

Verfasst: Montag 16. August 2004, 12:03
von joerg
Hallo Tom,
t0m hat geschrieben:... Wenn ich from module imort variable mache, bekomm ich ja nur den Anfangswert so wie ich ihn in das Modul geschrieben hab.
Hast Du das jetzt geraten oder wirklich ausprobiert? Bei mir funktioniert nämlich das gewünschte Verhalten.

Ich nehme allerdings an, daß Du nicht wirklich ein Objekt änderst, sondern ein neues an den gleichen Namen zuweist. Probiere doch mal, ein veränderliches Objekt zu nehmen, z.B. eine Liste, der Du in einem Modul ein Element anhängst, diese Änderung sollte überall sichtbar sein!

Viel Glück!

Jörg

Verfasst: Montag 16. August 2004, 12:11
von genrich

Verfasst: Montag 16. August 2004, 12:18
von t0m
Hi,

also sagen wir mal ich hab das Modul vars mit dem Code:

Code: Alles auswählen

myVar = -1
jetzt starte ich ein anderes Modul mit folgenden Code:

Code: Alles auswählen

import vars
vars.myVar = 2
Alles schön und gut, aber wenn ich jetzt noch ein Modul starte:

Code: Alles auswählen

import vars
print vars.myVar
wird -1 ausgegeben.

Verfasst: Montag 16. August 2004, 12:21
von Gast
Hi genrich,

da wars Du wohl ein bisschen schneller aus ich :)
Ich werd mir das mal anschauen.

Danke!

Verfasst: Montag 16. August 2004, 12:45
von t0m
Das funktioniert leider auch nicht :(

Verfasst: Montag 16. August 2004, 13:09
von joerg
Hallo Tom,
ich habe das Beispiel mal probiert. Das zweite Modul habe ich vars2.py genannt. Jetzt mache ich folgendes:

Code: Alles auswählen

>>> import vars
>>> print vars.myVar
-1
>>> import vars2
>>> print vars.myVar
2
Was willst Du mehr?

Oder meinst Du etwa das Abspeichern von Werten, um es in einem anderen Pythonprozeß wieder lesen zu können? Dafür würde ich die Module pickle oder shelve oder auch ConfigParser (der Name täuscht, der schreibt auch) nehmen, oder Du baust Dir selber was...

Jörg

Verfasst: Montag 16. August 2004, 14:10
von t0m
joerg hat geschrieben:Hallo Tom,
Oder meinst Du etwa das Abspeichern von Werten, um es in einem anderen Pythonprozeß wieder lesen zu können? Dafür würde ich die Module pickle oder shelve oder auch ConfigParser (der Name täuscht, der schreibt auch) nehmen, oder Du baust Dir selber was...
Ja das mein ich! Aber dazu die Variable doch in einer Datei gespeichert werden oder?

Verfasst: Montag 16. August 2004, 14:18
von joerg
t0m hat geschrieben:Ja das mein ich! Aber dazu die Variable doch in einer Datei gespeichert werden oder?
Ja, sicher! Das Dateisystem ist die einzige Stelle, wo Daten lange genug überleben können, vielleicht sogar einen Systemneustart. ;-)

Ich würde ConfigParser nehmen, und bei komplizierteren strukturierten Daten sowas wie pickle.

Jörg

Verfasst: Montag 16. August 2004, 14:23
von Gast
Hi,

ich werds dann mal mit ConfigParser versuchen (sind nur 2 Integer-Werte). :)

greetz,
Tom