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

问题描述 投票:1回答:1

好像当我将变量传递给函数时,我可以在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()变量。

python dynamic local
1个回答
1
投票

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

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

不应修改此词典的内容;更改可能不会影响解释器使用的本地和自由变量的值。

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

© www.soinside.com 2019 - 2024. All rights reserved.