前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >python中的id( )函数

python中的id( )函数

作者头像
用户7886150
修改2021-01-25 10:25:39
修改2021-01-25 10:25:39
1K0
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: Python id()

文章来源:百度知道

>>> a=2.0 >>> b=2.0 >>> id(a) 524440880 >>> id(b) 524440904 >>> a=2 >>> b=2 >>> id(a) 524425104 >>> id(b)524425104为什么上面输出的值有些一样,有些不一样呢,求大神详细解释下。

--------------------------------------------------------------

id方法的返回值就是对象的内存地址。

python中会为每个出现的对象分配内存,哪怕他们的值完全相等(注意是相等不是相同)。如执行a=2.0,b=2.0这两个语句时会先后为2.0这个Float类型对象分配内存,然后将a与b分别指向这两个对象。所以a与b指向的不是同一对象:

>>> a=2.0

>>> b=2.0

>>> a is b    #is就是比对2个变量的对象引用是否指向同一个对象; == 是比较两个变量的值是否相同

False

>>> a==b

True

但是为了提高内存利用效率对于一些简单的对象,如一些数值较小的int对象,python采取重用对象内存的办法,如指向a=2,b=2时,由于2作为简单的int类型且数值小,python不会两次为其分配内存,而是只分配一次,然后将a与b同时指向已分配的对象:

>>> a=2

>>> b=2

>>> a is b

True

如果赋值的不是2而是大的数值,情况就跟前面的一样了:

>>> a=5555

>>> b=5555

>>> a is b

False

>>> id(a)

12464372

>>> id(b)

12464396

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档