python函数外变量传到函数内处理后不改变函数外的变量,copy模块使用 ...

打印 上一主题 下一主题

主题 949|帖子 949|积分 2847

线上代码
  1. a = [1,2,3]
  2. def abc(a):
  3.   a.remove(1)
  4. abc(a)
  5. print(a)
复制代码
这段代码先指定了一个a变量是个list,又写了一个abc函数,功能是把外面传进来的list里面的1这个值去掉
按理说在函数内的执行只应该属于函数内的变化,但是实际打印结果是[2,3],函数把外面变量的1删掉了
这不是我想要的,我只想要变量在函数里处理成我想要的,函数外面的依然不变
现在把函数传进来的变量名换一下
  1. a = [1,2,3]
  2. def abc(b):
  3.   b.remove(1)
  4. abc(a)
  5. print(a)
复制代码
心想这次应该没有问题了吧,结果和上面一样是[2,3]
哪有什么办法可以得到我想要的结果呢,这就用到了copy模块,将代码改一下
  1. import copy
  2. a = [1,2,3]
  3. def abc(a):
  4.   b = copy.copy(a)
  5.   b.remove(1)
  6. abc(a)
  7. print(a)
复制代码
执行结果是[1,2,3],是我想要的结果

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

汕尾海湾

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表