Python中可变类型与不可变类型参数的区别

Python中的数据分为数字型与非数字型:

数字型的有:int  bool  float  complex  long(2.x)

非数字型有:string tuple list dict

而这些数据又分为可变类型与不可变类型:

不可变类型:数字型  tuple  string

可变类型:list  dict

【可变类型指的是来类型的数据可以在内存中进行修改】

例如:

对于不可变类型a,如果要对其进行修改,只会在内存中重新分配一个,再将其的引用赋值给a

而对于可变类型b,如果使用赋值运算符对其修改的话,会同不可变类型a一样,但是用b所自带的append方法对其修改时,只会在原有的内存空间中追加一个1,并不会重新再分配一个

 运行结果:

 

而对于可变类型与不可变类型的参数,有两点需要注意:

1.无论传递的参数是可变类型还是不可变类型,只要在函数内部针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到外部变量的引用。即针对参数使用赋值语句,不会影响调用函数时传递的实参变量

 

 运行结果为:

 

 从而证明函数内部的赋值,并没有影响实参的变化

2.若传递的参数是可变类型,在函数内部,使用方法修改了数据的内容,则会影响到外部的实参

 

 运行结果为:

 

 

posted @ 2023-03-03 21:11  Tinero  阅读(129)  评论(0编辑  收藏  举报