码迷,mamicode.com
首页 > 其他好文 > 详细

list作为实参传给函数

时间:2019-12-30 00:25:09      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:不可   实参   pytho   数据   tps   变化   detail   变量   函数参数传递   

list作为实参传给函数,如果在函数中形参list被改变,则实参list也会被改变。原因如下[1]

  在python中,数据有两种类型:mutable(可变) 和 immutable (不可变)

  list ,dict是mutable的;

  int , string , float ,tuple是inmutable 的。

  在函数参数的传递过程中:

  对于inmutable object ,函数参数传递是值

  对于mutable object,函数参数传递是指针(即地址)

  所以,当我们把list传给函数时,实际是把list的指针传递给了函数的变量,所以,list的值会随着函数进行变化。

因此,在把list传入函数前,应先用deepcopy做好备份。

 

【参考资料】

python中list作函数形参,如何防止被实参修改

参数传递

python深拷贝和浅拷贝的区别

list作为实参传给函数

标签:不可   实参   pytho   数据   tps   变化   detail   变量   函数参数传递   

原文地址:https://www.cnblogs.com/picassooo/p/12117042.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!