Python中的id()函数指的什么


Posted in Python onOctober 17, 2017

Python官方文档给出的解释是

id(object)
Return the “identity” of an object. This is an integer (or long integer) which is guaranteed to be unique and constant for this object during its lifetime. Two objects with non-overlapping lifetimes may have the same id() value.
CPython implementation detail: This is the address of the object in memory.

由此可以看出:

1、id(object)返回的是对象的“身份证号”,唯一且不变,但在不重合的生命周期里,可能会出现相同的id值。此处所说的对象应该特指复合类型的对象(如类、list等),对于字符串、整数等类型,变量的id是随值的改变而改变的。

2、一个对象的id值在CPython解释器里就代表它在内存中的地址。(CPython解释器:http://zh.wikipedia.org/wiki/CPython)

class Obj(): 
 def __init__(self,arg): 
  self.x=arg 
if __name__ == '__main__': 
 obj=Obj(1) 
 print id(obj)  #32754432 
 obj.x=2 
 print id(obj)  #32754432 
 s="abc" 
 print id(s)   #140190448953184 
 s="bcd" 
 print id(s)   #32809848 
 x=1 
 print id(x)   #15760488 
 x=2 
 print id(x)   #15760464

令外,用is判断两个对象是否相等时,依据就是这个id值

class Obj(): 
 def __init__(self,arg): 
  self.x=arg 
 def __eq__(self,other): 
  return self.x==other.x 
if __name__ == '__main__': 
 obj1=Obj(1) 
 obj2=Obj(1) 
 print obj1 is obj2 #False 
 print obj1 == obj2 #True 
 lst1=[1] 
 lst2=[1] 
 print lst1 is lst2 #False 
 print lst1 == lst2 #True 
 s1='abc' 
 s2='abc' 
 print s1 is s2  #True 
 print s1 == s2  #True 
 a=2 
 b=1+1 
 print a is b  #True 
 a = 19998989890 
 b = 19998989889 +1 
 print a is b  #False

is与==的区别就是,is是内存中的比较,而==是值的比较

总结

以上所述是小编给大家介绍Python中的id函数,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python程序设计入门(5)类的使用简介
Jun 16 Python
python将文本转换成图片输出的方法
Apr 28 Python
Django中处理出错页面的方法
Jul 15 Python
简单谈谈python中的多进程
Nov 06 Python
Python通过Pygame绘制移动的矩形实例代码
Jan 03 Python
python字典快速保存于读取的方法
Mar 23 Python
python实现log日志的示例代码
Apr 28 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
Dec 30 Python
python将类似json的数据存储到MySQL中的实例
Jul 12 Python
python实现高斯(Gauss)迭代法的例子
Nov 20 Python
Python bytes string相互转换过程解析
Mar 05 Python
教你用Python写一个植物大战僵尸小游戏
Apr 25 Python
Python中int()函数的用法浅析
Oct 17 #Python
一文总结学习Python的14张思维导图
Oct 17 #Python
python 中的int()函数怎么用
Oct 17 #Python
python遍历序列enumerate函数浅析
Oct 17 #Python
浅谈python中的正则表达式(re模块)
Oct 17 #Python
深入理解Django的自定义过滤器
Oct 17 #Python
Python引用类型和值类型的区别与使用解析
Oct 17 #Python
You might like
PHP操作Memcache实例介绍
2013/06/14 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
php的debug相关函数用法示例
2016/07/11 PHP
javascript之函数直接量(function(){})()
2007/06/29 Javascript
兼容IE和FF的js脚本代码小结(比较常用)
2010/12/06 Javascript
select标记美化--JS式插件、后期加载
2013/04/01 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
transport.js和jquery冲突问题的解决方法
2015/02/10 Javascript
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
基于jQuery仿淘宝产品图片放大镜代码分享
2020/06/23 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
JavaScript实现url参数转成json形式
2016/09/25 Javascript
解析Javascript单例模式概念与实例
2016/12/05 Javascript
vue数据双向绑定的注意点
2017/06/23 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
ionic grid(栅格)九宫格制作详解
2018/06/30 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
JavaScript一元正号运算符示例代码
2019/06/30 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
简单了解vue中的v-if和v-show的区别
2019/10/08 Javascript
nodejs实现百度舆情接口应用示例
2020/02/07 NodeJs
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
利用python画出AUC曲线的实例
2020/02/28 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
2020/05/26 Python
Python列表的深复制和浅复制示例详解
2021/02/12 Python
Diamondback自行车:拥有你的冒险
2019/04/22 全球购物
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
五一服装活动方案
2014/01/11 职场文书
给市场的环保建议书
2014/05/14 职场文书
建筑工地标语
2014/06/18 职场文书
朋友聚会开场白
2015/06/01 职场文书
小学总务工作总结
2015/08/13 职场文书
python使用matplotlib绘制图片时x轴的刻度处理
2021/08/30 Python