好像当我将变量传递给函数时,我可以在globals()dict中更改它,但不能在locals()dict中更改它。是否有一个原因?所以这段代码
def test(a, dim):
locals()['dim'] = a
print(locals()['dim'])
globals()['dim'] = a
print(globals()['dim'])
dim = 1
test(4,dim)
给我
4
1
我很想知道为什么它是这样,以及你是否知道一种方法来改变函数内的locals()变量。
根据文档,locals()字典不能用于修改变量。
https://docs.python.org/3/library/functions.html#locals
不应修改此词典的内容;更改可能不会影响解释器使用的本地和自由变量的值。
您可以编辑globals()字典,但这被认为是非标准的。