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中字典的循环遍历的两种方式
Feb 07 Python
Python 的类、继承和多态详解
Jul 16 Python
Python实现Logger打印功能的方法详解
Sep 01 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
Dec 28 Python
基于scrapy的redis安装和配置方法
Jun 13 Python
python和pygame实现简单俄罗斯方块游戏
Feb 19 Python
详解通过API管理或定制开发ECS实例
Sep 30 Python
python实现五子棋人机对战游戏
Mar 25 Python
关于numpy中eye和identity的区别详解
Nov 29 Python
如何给Python代码进行加密
Jan 10 Python
Python PIL库图片灰化处理
Apr 07 Python
使用python生成大量数据写入es数据库并查询操作(2)
Sep 23 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
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
PHP中文URL编解码(urlencode()rawurlencode()
2010/07/03 PHP
php模块memcache和memcached区别分析
2011/06/14 PHP
一个简洁的PHP可逆加密函数(分享)
2013/06/06 PHP
PHP添加PNG图片背景透明水印操作类定义与用法示例
2019/03/12 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
javascript function调用时的参数检测常用办法
2010/02/26 Javascript
jquery 操作DOM案例代码分享
2012/04/05 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
jQuery判断复选框是否勾选的原理及示例
2014/05/21 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
2014/08/10 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
2014/09/15 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
2015/12/03 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
Angular ui.bootstrap.pagination分页
2017/01/20 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
Vee-Validate的使用方法详解
2017/09/22 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
JS脚本实现定时到网站上签到/签退功能
2020/04/22 Javascript
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
[07:48]DOTA2上海特级锦标赛主赛事首日RECAP
2016/03/04 DOTA
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
django 解决扩展自带User表遇到的问题
2020/05/14 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
HTML5和CSS3让网页设计提升到下一个高度
2009/08/14 HTML / CSS
北大研究生linux应用求职信
2013/10/29 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
Vue2项目中对百度地图的封装使用详解
2022/06/16 Vue.js
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers