ローカルメンバーの作成/変更()が関数内で機能しないのはなぜですか?Python:locals()を使用して関数内の現在のスコープを変更できないのはなぜですか?
Python 2.5 (release25-maint, Jul 20 2008, 20:47:25)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> # Here's an example of what I expect to be possible in a function:
>>> a = 1
>>> locals()["a"] = 2
>>> print a
2
>>> # ...and here's what actually happens:
>>> def foo():
... b = 3
... locals()["b"] = 4
... print b
...
>>> foo()
3
なぜこのようなことをしたいですか? –
外部から取り込まれたデータを使って変数のロードを初期化したかったのです。だから私のアイデアだった: 1つの宣言「=なし」として、すべての変数 2はVARNAMEのマッピングを作成します - >外部ソースパス 3反復マップ、変数を設定したり、エラー で中止しかし、私は私の変数を設定する問題に走りました。 – RobM
古い質問を復活させて申し訳ありませんが、私は同じことをしたい:私は辞書を持っていて、私はその辞書のすべての要素をローカル変数に変えたい(options.fooの代わりにfooと言うことができる)。私は今これを行うためにevalを使用していますが、それは醜いです。他の方法はありませんか? – GaryO