在以变量名作为参数调用函数时,我需要分配一些变量。
因此,我遍历具有所需名称的元组,并通过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 只包含正常的函数变量吗?为什么它不起作用?