什么是python的id函数


Posted in Python onJune 11, 2020

python官方给出的id解释为

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)

令外,用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() 函数

描述

id() 函数返回对象的唯一标识符,标识符是一个整数。

CPython 中 id() 函数用于获取对象的内存地址。

语法

id 语法:

id([object])

参数说明:

object -- 对象。

返回值

返回对象的内存地址。

实例

以下实例展示了 id 的使用方法:

>>>a = 'runoob'
>>> id(a)
4531887632
>>> b = 1
>>> id(b)
140588731085608

到此这篇关于什么是python的id函数的文章就介绍到这了,更多相关python里id函数是什么内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中的推导式使用详解
Jun 03 Python
python实现文件快照加密保护的方法
Jun 30 Python
老生常谈Python startswith()函数与endswith函数
Sep 08 Python
python线程中同步锁详解
Apr 27 Python
详解Python中的四种队列
May 21 Python
Python pymongo模块常用操作分析
Sep 01 Python
使用tensorflow实现线性svm
Sep 07 Python
Python 从列表中取值和取索引的方法
Dec 25 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
Apr 26 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
Aug 09 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
Jun 15 Python
Jupyter notebook 不自动弹出网页的解决方案
May 21 Python
Keras:Unet网络实现多类语义分割方式
Jun 11 #Python
Pycharm中配置远程Docker运行环境的教程图解
Jun 11 #Python
Keras 快速解决OOM超内存的问题
Jun 11 #Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
Jun 11 #Python
使用keras实现孪生网络中的权值共享教程
Jun 11 #Python
查看keras各种网络结构各层的名字方式
Jun 11 #Python
python datetime时间格式的相互转换问题
Jun 11 #Python
You might like
中国收音机工业发展史
2021/03/02 无线电
php删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
解析link_mysql的php版
2013/06/30 PHP
php进行ip地址掩码运算处理的方法
2016/07/11 PHP
php获取今日开始时间和结束时间的方法
2017/02/27 PHP
php pdo操作数据库示例
2017/03/10 PHP
2017年最好用的9个php开发工具推荐(超好用)
2017/10/23 PHP
Yii框架日志记录Logging操作示例
2018/07/12 PHP
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
JavaScript中的console.time()函数详细介绍
2014/12/29 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
jQuery简单实现彩色云标签效果示例
2016/08/01 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
基于Vue实现页面切换左右滑动效果
2020/06/29 Javascript
Vue.js组件通信的几种姿势
2017/10/23 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
2018/01/30 Javascript
CKeditor4 字体颜色功能配置方法教程
2019/06/26 Javascript
详解node登录接口之密码错误限制次数(含代码)
2019/10/25 Javascript
Vue中key的作用示例代码详解
2020/06/10 Javascript
JS轮播图的实现方法2
2020/08/25 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
python模块之time模块(实例讲解)
2017/09/13 Python
Python中函数参数调用方式分析
2018/08/09 Python
python中for循环输出列表索引与对应的值方法
2018/11/07 Python
python基于socket函数实现端口扫描
2020/05/28 Python
python中的yield from语法快速学习
2020/11/06 Python
Python使用windows设置定时执行脚本
2020/11/12 Python
python Timer 类使用介绍
2020/12/28 Python
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
2012/11/09 面试题
绩效工资分配方案
2014/01/18 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书