python的id()函数介绍


Posted in Python onFebruary 10, 2013

>>> a = 2.5
>>> b = 2.5
>>> c = b
>>> a is c
False
>>> a = 2
>>> b = 2
>>> c = b
>>> a is c
True

在使用is函数的时候去打印a,b分别被赋值为2.5 和2的情况,发现:
>>> a = 2
>>> b = 2
>>> id(a)
21132060
>>> id(b)
21132060
>>> a = 2.5
>>> b = 2.5
>>> id(a)
19622112
>>> id(b)
29321464

当a,b为2的时候id相同,而为2.5的时候不同,这种情况在string字符串的时候也会出现,即当很短的a,b赋值很短的字符串的时候,它们的id值相同,而很长的则不会;

查阅了如下的文章:
http://stackoverflow.com/questions/4293408/ids-of-immutable-types
http://stackoverflow.com/questions/3402679/identifying-objects-why-does-the-returned-value-from-id-change
之后,得到一个简单的结论:解释器在对值很小的int和很短的字符串的时候做了一点小优化,只分配了一个对象,让它们id一样了。

Python 相关文章推荐
高性能web服务器框架Tornado简单实现restful接口及开发实例
Jul 16 Python
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
Jul 02 Python
python使用正则表达式匹配字符串开头并打印示例
Jan 11 Python
Python操作csv文件实例详解
Jul 31 Python
python Matplotlib画图之调整字体大小的示例
Nov 20 Python
Python Flask基础教程示例代码
Feb 07 Python
python实现数独游戏 java简单实现数独游戏
Mar 30 Python
元组列表字典(莫烦python基础)
Apr 03 Python
Django之PopUp的具体实现方法
Aug 31 Python
python 实现仿微信聊天时间格式化显示的代码
Apr 17 Python
Keras 利用sklearn的ROC-AUC建立评价函数详解
Jun 15 Python
Django debug为True时,css加载失败的解决方案
Apr 24 Python
python client使用http post 到server端的代码
Feb 10 #Python
python中查找excel某一列的重复数据 剔除之后打印
Feb 10 #Python
python中的一些类型转换函数小结
Feb 10 #Python
学习python的几条建议分享
Feb 10 #Python
解决谷歌搜索技术文章时打不开网页问题的python脚本
Feb 10 #Python
easy_install python包安装管理工具介绍
Feb 10 #Python
python 从远程服务器下载日志文件的程序
Feb 10 #Python
You might like
php数组转成json格式的方法
2015/03/09 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
2017/03/15 PHP
利用js对象弹出一个层
2008/03/26 Javascript
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
asp批量修改记录的代码
2008/06/25 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
详解nodejs与javascript中的aes加密
2016/05/22 NodeJs
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
Ionic2开发环境搭建教程
2020/08/20 Javascript
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
在vue中使用echarts图表实例代码详解
2018/10/22 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
2019/04/22 Javascript
微信小程序判断用户是否需要再次授权获取个人信息
2019/07/18 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
jquery实现垂直手风琴菜单
2020/03/04 jQuery
js实现拖拽元素选择和删除
2020/08/25 Javascript
Vue+element-ui添加自定义右键菜单的方法示例
2020/12/08 Vue.js
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
Python 操作文件的基本方法总结
2017/08/10 Python
python绘制热力图heatmap
2020/03/23 Python
Python 多维List创建的问题小结
2019/01/18 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
2019/04/29 Python
Django 中自定义 Admin 样式与功能的实现方法
2019/07/04 Python
使用python模拟命令行终端的示例
2019/08/13 Python
为什么说Python可以实现所有的算法
2019/10/04 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
html5用video标签流式加载的实现
2020/05/20 HTML / CSS
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
Sisley法国希思黎美国官方网站:享誉全球的奢华植物美容品牌
2020/06/27 全球购物
优秀本科生求职推荐信
2014/02/24 职场文书
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
2021/06/18 MySQL
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL