グローバルを「プログラム的」に定義したいと思います。私が何をしたいかのようなものは次のようになります。グローバル(モジュール)変数をプログラムで設定する方法は?
definitions = {'a': 1, 'b': 2, 'c': 123.4}
for definition in definitions.items():
exec("%s = %r" % definition) # a = 1, etc.
具体的には、私は(すべての値は、ファイルを解析によって得られるfundamentalconstants.electron_mass
、などとしてアクセスできる変数を含むモジュールfundamentalconstants
を、作成したいですしたがって、割り当てを「プログラム的」な方法で行う必要があります)。
今、上記のexec
ソリューションが機能します。しかし、私はそれに少し不安です。exec
がモジュールグローバルを設定する目標を達成する最もクリーンな方法ではないことが懸念されるからです。
+1、 'globals()'は実際に変更することができます(http://stackoverflow.com/questions/4859217/programmatically-creating-variables-in-python/4859312#4859312)。 – EOL
ヒント:間違いなく上記のEOLの答えをお読みください。 –
もう一つの良い点は、 'globals()'への変更がエラーなく持続することですが、 'locals()'ではそのような保証はありません。 – DuckPuncher