爱学编程的灌硒 2023-02-06 08:42 采纳率: 93.3%
浏览 30
已结题

python小整数对象池的is和==的区别的问题

看到这样的话:“大家自己试试看a=257,b=257时它们的id还是否会相等。事实上Python 为了优化速度,使用了小整数对象池,避免为整数频繁申请和销毁内存空间。而Python 对小整数的定义是 [-5, 257),只有数字在-5到256之间它们的id才会相等,超过了这个范围就不行了,同样的道理,字符串对象也有一个类似的缓冲池,超过区间范围内自然不会相等了。”
当时是复习is和==的区别的时候查找到的推文里面说的,自己打了代码试了一下,发现不是话里所说的,求解答

######a

=257
b=257
print(id(a),id(b))

  • 写回答

4条回答 默认 最新

  • 梦想橡皮擦 Python领域优质创作者 2023-02-06 08:49
    关注

    说的是没有错的,小整数对象池就是这样的。

    a=257
    b=257
    print(id(a),id(b))
    

    运行结果

    2599128439120 2599128439120
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 2月13日
  • 已采纳回答 2月6日
  • 创建了问题 2月6日

悬赏问题

  • ¥15 点云密度大则包围盒小
  • ¥15 nginx使用nfs进行服务器的数据共享
  • ¥15 C#i编程中so-ir-192编码的字符集转码UTF8问题
  • ¥15 51嵌入式入门按键小项目
  • ¥30 海外项目,如何降低Google Map接口费用?
  • ¥15 fluentmeshing
  • ¥15 手机/平板的浏览器里如何实现类似荧光笔的效果
  • ¥15 盘古气象大模型调用(python)
  • ¥15 传人记程序做的plc 485从机程序该如何写
  • ¥15 已知手指抓握过程中掌指关节、手指各关节和指尖每一帧的坐标,用贝塞尔曲线可以拟合手指抓握的运动轨迹吗?