假设我有这个功能
>>>a=3
>>>def num(a):
a=5
return a
>>>num(a)
5
>>>a
3
a 的值不变。
现在考虑这段代码:
>>> index = [1]
>>> def change(a):
a.append(2)
return a
>>> change(index)
>>> index
>>> [1,2]
在这段代码中,索引的值发生了变化。 有人可以解释一下这两个代码中发生了什么。根据第一个代码,index 的值不应更改(即应保持 index=[1])。
最佳答案
您需要了解 Python 名称的工作原理。有很好的解释here , 你可以 click here为您的案例制作动画。
如果你真的想在你的函数中操作一个单独的列表,你需要创建一个新的,例如使用
a = a[:]
在任何事情之前。请注意,这只会创建一个新列表,但元素仍然相同。
关于python - 在 python 中更改全局变量值的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18420071/