Python中的可变对象与不可变对象
前几天在做项目的过程中发现了一个问题,向函数中传入一个list,在函数体内将其赋值给list,对list1操作后发现list也发生了变化,啊 ! 出乎意料。查了一下原因,原来python里有可变对象和不可变对象之分。只有传入的是不可变对象时,值才不发生改变,若是可变对象,充当函数参数时要注意了。
可变对象
可变对象:对象存放在地址中的值不会被改变(所谓的改变是创建了一块新的地址并把新的对象的值放在新地址中原来的对象并没有发生变化)
Python3中的可变对象有,字典(dict), 集合(set), 列表(list)
不可变对象
不可变对象:对象存放在地址中的值会原地改变
Python3中的不可变对象有,整型(int), 字符串(string), 浮点型(float), 元组(tuple)
总结
也就是说,一个函数,如果传入的是可变对象(例如列表),在函数中实现添加修改等操作,会对原先的输入值产生影响!