Python中不可变类型和可变类型详解

2021-06-11 22:07

阅读:563

标签:ict   源码   并且   元组   链接   float   ace   法律   内存分析   

1. 什么是不可变类型
变量对应的值中的数据是不能被修改,如果修改就会生成一个新的值从而分配新的内存空间。
不可变类型:
     数字(int,long,float)
     布尔(bool)
     字符串(string)
     元组(tuple)

案例一
技术图片
结果:
两个不同的数字
案例二:
技术图片
结果:
两个不同的数字
2. 什么是可变类型
变量对应的值中的数据可以被修改,但内存地址保持不变。
   不可变类型:
       列表(list)
       字典(dict)

案例一:
技术图片
结果:
两个相同的数字
[‘刘备‘, ‘关羽‘, ‘张飞‘, ‘赵云

案例二:
技术图片
结果:
两个相同的数字
{‘name‘: ‘刘备‘, ‘age‘: 20}

3. 为什么生成以上两种情况
因为python中的值是通过引用(地址值)传递的,不可变类型的值一旦被修改后会创建一个内存空间并且生成新的地址值,可变类型的值会在原内存空间中被修改。

4. 不可变类型执行过程和内存分析
技术图片

 

 

5. 可变类型执行过程和内存分析
技术图片

感谢源码时代教学讲师提供此文章!

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31544234/viewspace-2157363/,如需转载,请注明出处,否则将追究法律责任。

Python中不可变类型和可变类型详解

标签:ict   源码   并且   元组   链接   float   ace   法律   内存分析   

原文地址:https://www.cnblogs.com/maybach/p/13771568.html


评论


亲,登录后才可以留言!