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

Python3:无法更改函数中locals()字典的变量,python,dynamic,local,Python,Dynamic,Local,似乎当我将变量传递给函数时,我可以在globals()dict中更改它,但不能在locals()dict中更改。这有什么原因吗?所以这个代码 def测试(a,dim): 局部变量()['dim']=a 打印(局部变量()['dim']) globals()['dim']=a 打印(globals()['dim']) 尺寸=1 测试(4,dim) 给我 4 1 我很想知道为什么会是这样,以及您是否知道如何在函数中更改locals()变量。根据文档,locals()字典不能用于修改变量 本词典

似乎当我将变量传递给函数时,我可以在globals()dict中更改它,但不能在locals()dict中更改。这有什么原因吗?所以这个代码

def测试(a,dim): 局部变量()['dim']=a 打印(局部变量()['dim']) globals()['dim']=a 打印(globals()['dim']) 尺寸=1 测试(4,dim) 给我

4
1

我很想知道为什么会是这样,以及您是否知道如何在函数中更改locals()变量。

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

本词典的内容不得修改;变化可能 不影响应用程序使用的本地变量和自由变量的值 翻译


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

您希望学习一种编辑
locals()
的方法,因为这在某些应用程序中对您有用吗?鉴于这种方法行不通,如果您现在有一个未解决的问题,请随意发布一个新问题