python - 在 python 中更改全局变量值的问题

标签 python

假设我有这个功能

>>>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/

相关文章:

python - python 中 max() 语法的澄清

python - 196 算法,函数中有可选输入

python - Komodo IDE 7 在 Ubuntu 11.10 上崩溃

python - Pydrive 从 Google 云端硬盘中删除文件

python - 如何覆盖 django.contrib.gis

python - 如何将 <meta http-equiv ="Content-Security-Policy"content ="upgrade-insecure-requests"> 添加到 Flask-bootstrap 模板

python - Intel HD Graphics 3000 上的 PyOpenGL 访问冲突

python - 模块已安装但无法导入

python - 获取时间间隔内的所有日期

python - Pycharm Kivy 串口读取