ある変数に、ある値を保存したい。だけど、その変数名を、文字列としてモジュールに渡したい、なんてことが、Blenderを使っていて、起こりました。
Game Property にその変数名を入力しておきます。
Logic Editor で、適当にpythonのModuleを呼び出して使うと、オブジェクトごとに違う変数名を使うことが出来るはず。
なくなっちゃうと困るので、以下、魚拓です:
http://d.hatena.ne.jp/ousttrue/20071115/1195157915
■[python]メモ:変数名の入った文字列から変数の実体にアクセスする
わりとどの言語でもこの手の情報は調べにくいのだが、やっぱりだいぶ手間取った。
__main__とかパッケージ、importの辺りが関連していると思ったんだけど微妙にはずしていてなかなか見つからず。
グローバル名前空間
globals()["HOGE"]
ローカル名前空間
locals()["HOGE"] # 変更禁止らしい。
モジュール名前空間
getattr(Module.Submodule, "HOGE")