简单分析python的内存处理

本文主要分析Python内存处理,包括栈内存、方法区、静态区和堆内存。不可变类型如整数在常量区存储,修改变量会指向新地址,而可变类型如列表在堆内存中,修改时地址不变,涉及浅拷贝和深拷贝的概念。
摘要由CSDN通过智能技术生成

python内存浅析

python内存浅析


栈内存区【stack】:用于直接分配数据,存取数度较快,数据存储不稳定,适用于小数据块的快速存取,一般在程序中用于存储变量数据。
方法区【data】:主要用于加载程序中的代码数据、二进制数据、方法数据等等程序运行需要的预加载数据
静态区【static】:主要用于加载存储程序中的一些静态数据、常量数据等等,在PYTHON中的不可变数据类型的数据也会存储在静态常量区内存中
堆内存【heap】:存储数据稳定持久,一般用于存储加载较为重量级的数据,如程序运行过程中的对象都是存在堆内存中的

v2-1c9a5929569708e5fb716b0fb33c9afb_b.jpg

一、不可变类型数据


一般的基本数据类型都是不可变类型

python中的一切都是对象,可以通过id()函数查询对象在内存中的地址数据,不可变数据类型是在定义了数据之后,修改变量的数据,变量不会修改原来内存地址的数据而是会指向新地址,原有的数据保留,这样更加方便程序中基本数据的利用率。



v2-e3dc69f957737fd448e6364edd397c98_b.jpg

用python赋值皆标签的理念理解一下

a=3:常量区中创建地址为8791523976080的值=3,用a标签贴在他身上。

b=a: b标签和a标签一样 贴在地址为8791523976080的值上

a=4:栈中创建地址为8791523976112的值=4,把a标签从”地址8791523976080”上取下贴在“地址8791523976112”上

此时b还是贴在”地址8791523976080”上

同理分析num[4]

发现原来 “4”这个常亮就是存在“地

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值