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
Variable in mehreren Modulen verwenden!?
Hallo Tom,
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
Hast Du das jetzt geraten oder wirklich ausprobiert? Bei mir funktioniert nämlich das gewünschte Verhalten.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.
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
"Sie sind nicht berechtigt, unrechtmäßige Kopien dieses Datenträgers zu erstellen." - Microsoft-Weisheit auf einer CD von MS-VisualC++-6.0
hilft dir das weiter:
http://python.sandtner.org/viewtopic.php?p=9452#9452
http://python.sandtner.org/viewtopic.php?p=9452#9452
Hi,
also sagen wir mal ich hab das Modul vars mit dem Code:
jetzt starte ich ein anderes Modul mit folgenden Code:
Alles schön und gut, aber wenn ich jetzt noch ein Modul starte:
wird -1 ausgegeben.
also sagen wir mal ich hab das Modul vars mit dem Code:
Code: Alles auswählen
myVar = -1
Code: Alles auswählen
import vars
vars.myVar = 2
Code: Alles auswählen
import vars
print vars.myVar
Hi genrich,
da wars Du wohl ein bisschen schneller aus ich
Ich werd mir das mal anschauen.
Danke!
da wars Du wohl ein bisschen schneller aus ich
Ich werd mir das mal anschauen.
Danke!
Hallo Tom,
ich habe das Beispiel mal probiert. Das zweite Modul habe ich vars2.py genannt. Jetzt mache ich folgendes:
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
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
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
"Sie sind nicht berechtigt, unrechtmäßige Kopien dieses Datenträgers zu erstellen." - Microsoft-Weisheit auf einer CD von MS-VisualC++-6.0
Ja das mein ich! Aber dazu die Variable doch in einer Datei gespeichert werden oder?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, sicher! Das Dateisystem ist die einzige Stelle, wo Daten lange genug überleben können, vielleicht sogar einen Systemneustart.t0m hat geschrieben:Ja das mein ich! Aber dazu die Variable doch in einer Datei gespeichert werden oder?
Ich würde ConfigParser nehmen, und bei komplizierteren strukturierten Daten sowas wie pickle.
Jörg
"Sie sind nicht berechtigt, unrechtmäßige Kopien dieses Datenträgers zu erstellen." - Microsoft-Weisheit auf einer CD von MS-VisualC++-6.0
Hi,
ich werds dann mal mit ConfigParser versuchen (sind nur 2 Integer-Werte).
greetz,
Tom
ich werds dann mal mit ConfigParser versuchen (sind nur 2 Integer-Werte).
greetz,
Tom