Ich möchte Globals auf eine "programmatische" Weise definieren. Etwas Ähnliches, was ich will zu tun wäre:Wie programmgesteuert eine globale (Modul) Variable festlegen?
definitions = {'a': 1, 'b': 2, 'c': 123.4}
for definition in definitions.items():
exec("%s = %r" % definition) # a = 1, etc.
Insbesondere möchte ich fundamentalconstants
ein Modul erstellen, die Variablen enthält, die als fundamentalconstants.electron_mass
zugegriffen werden kann usw., wobei alle Werte erhalten werden durch eine Datei Parsen (daher die Notwendigkeit, die Aufgaben "programmatisch" zu erledigen.
Jetzt würde die obige exec
Lösung funktionieren. Aber ich bin ein bisschen unruhig, weil ich befürchte, dass exec
nicht der sauberste Weg ist, um das Ziel zu erreichen, Modul Globals zu setzen.
+1, wie 'globals()' kann in der Tat geändert werden (http://stackoverflow.com/questions/4859217/programma/creating-variables-in-python/4859312#4859312). – EOL
Tipp: Lesen Sie auf jeden Fall die Antwort von EOL, auf die er oben Bezug nimmt. –
Ein weiterer guter Punkt ist, dass Änderungen an 'globals()' ohne Fehler fortbestehen, aber es gibt keine solche Garantie mit 'locals()'. – DuckPuncher