Python3:无法在函数内更改locals()词典的变量

时间:2019-04-11 04:07:41

标签: python dynamic local

好像将变量传递给函数时,可以在globals()字典中进行更改,而不能在locals()字典中进行更改。是否有一个原因?所以这段代码

def test(a, dim):
    locals()['dim'] = a
    print(locals()['dim'])
    globals()['dim'] = a
    print(globals()['dim'])

dim = 1
test(4,dim)

给我

4
1

我很想知道为什么会这样,以及您是否知道改变函数内部locals()变量的方法。

1 个答案:

答案 0 :(得分:1)

根据文档,不能使用locals()词典修改变量。

https://docs.python.org/3/library/functions.html#locals

  

此字典的内容不应修改;变化可能   不会影响   解释器。

您可以编辑globals()字典,但这被认为是非标准的。