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 相关文章推荐
python通过wxPython打开一个音频文件并播放的方法
Mar 25 Python
python迭代器与生成器详解
Mar 10 Python
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
May 17 Python
python实现二分查找算法
Sep 21 Python
Python 用Redis简单实现分布式爬虫的方法
Nov 23 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
Dec 12 Python
深入解析python中的实例方法、类方法和静态方法
Mar 11 Python
最新2019Pycharm安装教程 亲测
Feb 28 Python
Mac中PyCharm配置Anaconda环境的方法
Mar 04 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
Aug 19 Python
python爬虫爬取网页数据并解析数据
Sep 18 Python
Django migrate报错的解决方案
May 20 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
XHProf报告字段含义的解析
2016/05/17 PHP
jquery中的$(document).ready()与window.onload的区别
2009/11/18 Javascript
javascript showModalDialog,open取得父窗口的方法
2010/03/10 Javascript
JQuery里选择超链接的实现代码
2011/05/22 Javascript
关于javascript中的typeof和instanceof介绍
2012/12/04 Javascript
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
js使用ajax读博客rss示例
2014/05/06 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
AngularJS删除路由中的#符号的方法
2016/09/20 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
JS实现图片上传预览功能
2016/11/21 Javascript
nodejs redis 发布订阅机制封装实现方法及实例代码
2016/12/15 NodeJs
JS日程管理插件FullCalendar简单实例
2017/02/07 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
jQuery简单判断值是否存在于数组中的方法示例
2018/04/17 jQuery
使用Angular-CLI构建NPM包的方法
2018/09/07 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
原生js canvas实现鼠标跟随效果
2020/08/02 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
关于vue-cli3打包代码后白屏的解决方案
2020/09/02 Javascript
python 创建弹出式菜单的实现代码
2017/07/11 Python
用matplotlib画等高线图详解
2017/12/14 Python
MAC中PyCharm设置python3解释器
2017/12/15 Python
python、Matlab求定积分的实现
2019/11/20 Python
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
NET程序员上机面试题
2015/05/23 面试题
北京离婚协议书范文2014
2014/09/29 职场文书
大学生联谊活动策划书(光棍节)
2014/10/10 职场文书
党的群众路线教育实践活动个人整改措施材料
2014/11/04 职场文书
神秘岛读书笔记
2015/07/01 职场文书
导游词之大雁塔景区
2019/09/17 职场文书
浅谈MySQL函数
2021/10/05 MySQL