自学python_1 id与小整数池

在今天的学习中遇到了这样的一个问题。

num = 257
num_1 = 257
print(id(num))
print(id(num_1))  

这段代码在ide中的输出结果和在交互式中的是不一样的。
我在网上查明了原因:
在交互式中,-5 ~ 256都会有一个自己的空间,被称为小整数对象池。如果在小整数池之外定义一个变量。则会出现
如果把数值257改成小整数池里的数,则在交互式中,id会相同。

id的返回值是对象的一种类似于地址的属性(是python中最接近地址的东西),是不变的,但在不同的生命周期里,可能出现相同的id。
但是对于比较简单的类型,比如说整型,字符串等,则会随着值的改变而改变。在ide中,python和c++是不同的,c++会在定义一个变量的同时为其分配内存空间,而python里,如果两个变量的值相同,则会为其分配同一id。这也就是为什么这段代码在ide中运行的结果显示id相同。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值