我有两个 python 代码块,一个有效,另一个无效。
工作块:
env = {'user':'xyz'}
for key, value in env.items():
exec("{} = value".format(key))
print(user)
输出:
xyz
该块不起作用:
def test():
env = {'user':'xyz'}
for key, value in env.items():
exec("{} = value".format(key))
print(user)
test()
输出:
NameError:未定义名称“用户”
我看到的唯一区别是第一个块是在全局范围内调用的。
你能解释一下吗?
非常感谢!
PS:恕我直言,我知道,我应该避免使用 exec() 但如果我想怎么办。