python函数参数改不改变的问题

前几天在做项目的过程中发现了一个问题,向函数中传入一个list,在函数体内将其赋值给list,对list1操作后发现list也发生了变化,啊 ! 出乎意料。查了一下原因,原来python里有可变对象和不可变对象之分。只有传入的是不可变对象时,值才不发生改变,若是可变对象,充当函数参数时要注意了。

不可变对象:Number ,String , Tuple,bool
可变对象: List , Set , Dictionary是可以改变内部的元素

 

 

python函数中的参数 , 传的是变量引用的副本 , 它与变量指向同一个值,要想不改变原list,函数内部用copy.deepcopy(传入参数)

 

 

 

posted @ 2021-02-14 10:25  wodepingzi  阅读(314)  评论(0)    收藏  举报