python的小整数对象池和大整数对象池

Python为优化性能,引入了小整数对象池,覆盖范围是[-5, 256],这些整数对象在程序中被复用,不会被垃圾回收。而超出此范围的整数则每次创建新对象,但在同一代码块内的大整数在PyCharm中可能共享对象。交互模式下,大整数每次运行会新建,而PyCharm中整个代码块内大整数共用对象。
摘要由CSDN通过智能技术生成

python的小整数对象池和大整数对象池

小整数对象池


整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池,避免为整数频繁申请和销毁内存空间。
Python 对小整数的定义是 [-5, 256] 这些整数对象是提前建立好的,不会被垃圾回收。在一个 Python 的程序中,无论这个整数处于LEGB中的哪个位置,所有位于这个范围内的整数使用的都是同一个对象。
同理,单个字母也是这样的。


大整数对象池


超出小整数的范围即为大整数,每次都会创建一个新的对象。但是处于一个代码块的大整数是同一个对象。
终端是每次执行一次,所以每次的大整数都重新创建,而在pycharm中,每次运行是所有代码都加载都内存中,属于一个整体,所以这个时候会有一个大整数对象池,即处于一个代码块的大整数是同一个对象。


在Python交互模式下:
在这里插入图片描述
在这里插入图片描述


在pycharm中:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值