変数の名前を引数として関数を呼び出すときに、いくつかの変数を割り当てる必要があります。
locals()
したがって、目的の名前を持つタプルをループし、 dictを介して割り当てます。
それは機能しますが、関数自体の内部であっても、名前でアクセスできません。
def function():
var_names = ("foo","bar","foobar")
for var_name in var_names:
locals()[var_name] = len(var_name)
print foo
スロー:
Traceback (most recent call last):
File "error_test.py", line 8, in <module>
function()
File "error_test.py", line 5, in function
print foo
NameError: global name 'foo' is not defined
次のコードを使用すると、うまく機能します。
def function():
var_names = ("foo","bar","foobar")
for var_name in var_names:
locals()[var_name] = len(var_name)
print locals()["foo"]
locals()
dict には通常の関数変数だけが含まれているのではないでしょうか? なぜ機能しないのですか?