ich schreibe ein Programm, bei dem ich in allen möglichen Funktionen auf ein (sehr umfangreiches) Dictionary zugreife. Das Dictionary soll eine globale Variable sein. Das funktioniert erstmal problemlos (wenn ich alles richtig verstanden habe, kann ich "mutable" Dateitypen wie Listen und Dictionaries, die im Hauptprogramm angelegt wurden, einfach global benutzen):
Code: Alles auswählen
def newDictEntry(newKey, newValue):
myDict[newKey] = newValue
myDict = {1: 'eins', 2: 'zwei'}
newDictEntry(3, 'drei')
print(myDict)
{1: 'eins', 2: 'zwei', 3: 'drei'}
Wenn ich meine Funktion ("newDictEntry") aber als Modul in einer anderen Datei ablege, funktioniert es nicht mehr:
Code: Alles auswählen
from myFunction import *
myDict = {1: 'eins', 2: 'zwei'}
newDictEntry(3, 'drei')
print(myDict)
Code: Alles auswählen
def newDictEntry(newKey, newValue):
myDict[newKey] = newValue
Traceback (most recent call last):
File "/home/holger/eclipse-workspace/test/main.py", line 4, in <module>
newDictEntry(3, 'drei')
File "/home/holger/eclipse-workspace/test/myFunction.py", line 2, in newDictEntry
myDict[newKey] = newValue
NameError: name 'myDict' is not defined
Kann ich mit globalen Dictionaries arbeiten und trotzdem Funktionen, die auf diese Dictionaries zugreifen sollen, als Module in anderen Dateien ablegen? - Und wenn ja: wie?
Vielen Dank!
Holger