Python变量内存管理

文章详细阐述了Python中变量的存储位置,指出变量存在于内存中,每个变量在内存中开辟独立空间。接着介绍了引用计数的概念,说明当变量值的引用计数为0时,会触发垃圾回收机制释放内存。此外,还提到了小整数池,这是一个优化机制,用于缓存范围[-5,256]内的小整数,以避免重复申请内存。
摘要由CSDN通过智能技术生成

一.变量存在哪里

1.如果我们定义了一个变量,而我们没有用python解释器取运行的时候,这个变量其实就是很普通的几个字符而已。而当我们用Python解释器取运行它的时候,那字符进入了内存,才会有变量这个概念。也就是说变量是存放在内存当中的。

2.但是说变量只是存在内存中并没有很具体,实际上在每定义一个变量就会在这个内存的大空间中开辟一个小空间

二.引用计数

1.引用计数是针对变量值的
2.比如定义一个变量

height = 180
x = height # x是在引用height,180的引用计数加1
#这个时候引用计数是为2,
del x  #释放的是引用计数,这时候180的引用计数为1
del height #这个时候180的引用计数为0

三.垃圾回收机制

1.当我们定义一个有效的变量时,这时候会在内存中自动分配一个小的存储空间给我们定义的变量的值,但是当我们让变量名接收一个其它的值的时候,那我们一开始所定义的那个变量的值就没有了变量名来接收,此时这个变量值就会看做成是垃圾,python就会处理这个垃圾,释放10的内存占用,这就是python的垃圾回收机制

2.也就是说,当变量值的引用计数为0的时候,触发了垃圾回收制,释放一开始给他开辟的内存空间

四.小整数池

1.为了避免因创建相同的值而重复申请内存空间所带来的效率问题, Python解释器会在启动时创建出小整数池,范围是[-5,256],该范围内的小整数对象是全局解释器范围内被重复使用,永远不会被垃圾回收机制回收。

2.在pycharm中运行python程序时,pycharm出于对性能的考虑,会扩大小整数池的范围,其他的字符串等不可变类型也都包含在内一便采用相同的方式处理了,我们只需要记住这是一种优化机制,至于范围到底多大,无需细究。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值