python中有可变对象和不可变对象,可变对象:list,dict,set,不可变对象有:int,string,float,tuple;

所谓是否可变是针对内存地址里的值来说的,对于可变对象,是在内存地址不变的情况下其值可以改变,

而对于不可变对象,一旦定义后,同一个内存地址里的值就不可改变,若想用别的的值,只能另开内存空间;

python规定函数中参数传递都是传递引用,也就是传递给函数的是原变量实际所指向的内存空间,

修改的时候就会根据该引用的指向去修改该内存中的内容,所以按道理在函数内改变了传递过来的参数的值的话,原来外部的变量也应该受到影响。

但是python中有可变类型和不可变类型,当传过来的是可变类型(list,dict)时,我们在函数内部修改就会影响函数外部的变量,

而传入的是不可变类型时在函数内部修改改变量并不会影响函数外部的变量,因为修改的时候会先复制一份再修改。