可变对象数据类型_不可变对象数据类型、参数的传递-传递可变对象_传递不可变对象

1、可变对象数据类型_不可变对象数据类型

要谈论可变对象类型、不可变对象类型,需要先搞清python中内存结构。在python中内存分为两部分,堆和栈。堆中存放对象,栈中存放对象的引用,所以对象数据类型只是针对堆中的对象来说的,与栈中的引用无关。而对于变量名来说,变量名其实是栈中存放对象引用的内存地址。

不可变对象:在堆中,对象的value值存放的是程序员所希望存的内容本身,value值是不可改变的。
可变对象:在堆中,对象的value值存放的是程序员所希望存的内容的地址(引用),value值是可改变的。

不可变对象数据类型:int、float、字符串、元组。
可变对象数据类型:列表、字典、集合。

示意图如下:
可变对象数据类型_不可变对象数据类型、参数的传递-传递可变对象_传递不可变对象_第1张图片

2、参数的传递-传递可变对象_传递不可变对象

可变对象数据类型_不可变对象数据类型、参数的传递-传递可变对象_传递不可变对象_第2张图片
可变对象数据类型_不可变对象数据类型、参数的传递-传递可变对象_传递不可变对象_第3张图片
可变对象数据类型_不可变对象数据类型、参数的传递-传递可变对象_传递不可变对象_第4张图片
参考视频

你可能感兴趣的:(可变对象数据类型_不可变对象数据类型、参数的传递-传递可变对象_传递不可变对象)