什么是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 相关文章推荐
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
Jun 12 Python
Python实现随机生成手机号及正则验证手机号的方法
Apr 25 Python
3个用于数据科学的顶级Python库
Sep 29 Python
Python 监测文件是否更新的方法
Jun 10 Python
python nmap实现端口扫描器教程
May 28 Python
PyCharm2018 安装及破解方法实现步骤
Sep 09 Python
python中文分词库jieba使用方法详解
Feb 11 Python
Django 404、500页面全局配置知识点详解
Mar 10 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
Mar 30 Python
Python通过getattr函数获取对象的属性值
Oct 16 Python
Python3 用matplotlib绘制sigmoid函数的案例
Dec 11 Python
总结Python使用过程中的bug
Jun 18 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
WordPress的文章自动添加关键词及关键词的SEO优化
2016/03/01 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
PHP实现的折半查询算法示例
2017/10/09 PHP
Swoole4.4协程抢占式调度器详解
2019/05/23 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
2019/12/12 PHP
ExtJS 2.2.1的grid控件在ie6中的显示问题
2009/05/04 Javascript
javascript+iframe 实现无刷新载入整页的代码
2010/03/17 Javascript
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
js实现连续英文字符自动换行兼容ie6 ie7和firefox
2013/09/06 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
引用外部脚本时script标签关闭的写法
2014/01/20 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
2014/03/12 Javascript
使用JavaScript+canvas实现图片裁剪
2015/01/30 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
2015/11/17 Javascript
jQuery检测滚动条是否到达底部
2015/12/15 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
JavaScript实现图像模糊化的方法实例
2017/01/15 Javascript
JavaScript实现form表单的多文件上传
2020/03/27 Javascript
bootstrap插件treeview实现全选父节点下所有子节点和反选功能
2017/07/21 Javascript
js实现1,2,3,5数字按照概率生成
2017/09/12 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
javascript 原型与原型链的理解及应用实例分析
2020/02/10 Javascript
python让图片按照exif信息里的创建时间进行排序的方法
2015/03/16 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
对Python 字典元素进行删除的方法
2020/07/31 Python
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
园长自我鉴定
2013/10/06 职场文书
学校卫生检查制度
2014/02/03 职场文书
《听鱼说话》教学反思
2014/02/15 职场文书
优秀党支部书记事迹材料
2014/05/29 职场文书
个人培训总结
2015/03/05 职场文书
Python软件包安装的三种常见方法
2022/07/07 Python