>>> 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
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

【python】id()函数相关推荐

  1. Python id() 函数

    Python id() 函数  Python 内置函数 描述 id() 函数用于获取对象的内存地址. 语法 id 语法: id([object]) 参数说明: object -- 对象. 返回值 返回 ...

  2. python id()函数(返回对象在内存地址中的唯一标识)

    from builtins.py def id(*args, **kwargs): # real signature unknown"""Return the ident ...

  3. python中object转str_python的id()函数介绍 python怎么将objectid转为str

    python id函数的输出值问题 Python中id函数为什么会对不同对象返回相同值如果那两个对象指向的是相同的内存地址,也就是说内部指向的其实是一个对象,那他们的ID返回值就是一样的. pytho ...

  4. Python 常用函数 - Python入门教程

    Python 常用函数 2021 年 3 月 12 日 上午 11:18 [编辑] Python print 函数(一) Python print 函数(二) Python format 函数 Pyt ...

  5. python的id方法_python中id()函数的实用研究实例

    python中id()函数的实用研究实例 >>> a = 2.5 >>> b = 2.5 >>> c = b >>> a is ...

  6. python的in,is和id函数

    1. in 和 not in -- 判断某个序列中是否存在某值 # in aa = [1,2,3,'Cathy','太平洋'] if '大西洋' in aa:print('yes') else:pri ...

  7. python中id函数的用法_用id函数做几个测试

    Python内置的id函数其实非常简单,就是将参数对象的内存地址返回,即id函数返回的是一个很大的整数(地址).基于Python语言的特性,本文做了几个测试,还比较有趣. 相同整数的id相同 > ...

  8. id在python中是什么意思_Python中的id()函数指的什么

    Python官方文档给出的解释是 id(object) Return the "identity" of an object. This is an integer (or lon ...

  9. python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递

    python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...

  10. python counter函数定义_分享几个自己常用的Python高级函数

    哈喽大家好我是蚂蚁,今天给大家分享几个我自己常用的Python相对高级点的函数,这些函数在特定的场景下能节省大量的代码. 简单列举一下我想要介绍的几个函数: counter:计数器 defaultdi ...

最新文章

  1. java动效_Android 界面漩涡扭曲动效实现
  2. 荣耀linux怎么安装双系统,双系统怎么装?
  3. mysql varchar 非空判断_工资从1万到3万,你还差mysql数据库优化之系列三
  4. ecs使用脚本安装oracle
  5. Paint the Tree CodeForces - 1244D(看似是树,其实是条链)
  6. 威纶触摸屏使用说明书_MODBUS通信之触摸屏与变频器通信知识分享(一)
  7. java和c++ 删除hash表的内容
  8. mysql 在线备份脚本,MySQL备份脚本
  9. 游戏脚本在移动游戏设计中的作用_游戏设计中道具设计分步解说
  10. SQL SELECT INTO语句
  11. 7-6 逆序的三位数 (10 分)
  12. 计算机硬件及软件组成,计算机的组成及功能(硬件及操作系统)
  13. java beanutil 工具类_Apache Commons BeanUtils PropertyUtils工具类操作Java Bean属性
  14. gms2游戏移植linux,GMS卡刷包制作
  15. arcgis api for js去掉地图边框与logo(arcgis api for js篇.3)
  16. 全栈学习之CSS基础学习
  17. 10.5日饿了么复活了,大家凑合用用吧~(偶尔更新~)
  18. 数据库基础之位图索引
  19. 巧用Hosts文件杀掉IE弹出窗口(转)
  20. 电视机画质问题--PQ问题

热门文章

  1. 设计模式-构造器模式-java-中文版
  2. 50条超级变态的网名
  3. CF6D--Lizards and Basements 2译文
  4. 几米漫画-——可不可以不勇敢
  5. 城里人的高端玩法(对股票及金融创新的本质的经典讲解)
  6. java调用Groovy脚本
  7. Paddle实现食物图片分类
  8. 超实用的学习教程、资源、素材、工具等网站和软件分享
  9. 利来英超体育预测:萨卡不可阻挡,助力阿森纳向冠军冲锋
  10. 【建议改为:活 学 活 用】如何使用git工具一键隐藏/管理你的“学习资料”?