什么是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中replace方法实例分析
Aug 20 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
Apr 22 Python
Python使用progressbar模块实现的显示进度条功能
May 31 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
Dec 26 Python
python实现批量视频分帧、保存视频帧
May 31 Python
python面向对象 反射原理解析
Aug 12 Python
numpy ndarray 取出满足特定条件的某些行实例
Dec 05 Python
pytorch逐元素比较tensor大小实例
Jan 03 Python
Python图像处理库PIL中图像格式转换的实现
Feb 26 Python
python3从网络摄像机解析mjpeg http流的示例
Nov 13 Python
Selenium 安装和简单使用的实现
Dec 04 Python
PyCharm 光标变成黑块的解决方式
Feb 06 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
php版淘宝网查询商品接口代码示例
2014/06/17 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
详解php设置session(过期、失效、有效期)
2015/11/12 PHP
php结合md5实现的加密解密方法
2016/01/25 PHP
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
Jquery日期选择datepicker插件用法实例分析
2015/06/08 Javascript
浅谈javascript构造函数与实例化对象
2015/06/22 Javascript
Javascript实现的简单右键菜单类
2015/09/23 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
javascript中new关键字详解
2015/12/14 Javascript
jQuery Easyui实现左右布局
2016/01/26 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
2016/04/26 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
Bootstrap框架安装使用详解
2017/01/21 Javascript
纯jQuery实现前端分页功能
2017/03/23 jQuery
深入理解Commonjs规范及Node模块实现
2017/05/17 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
2018/06/29 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
2018/07/10 Javascript
小程序实现留言板
2018/11/02 Javascript
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
TensorFlow打印tensor值的实现方法
2018/07/27 Python
微信公众号token验证失败解决方案
2019/07/22 Python
Python实现微信小程序支付功能
2019/07/25 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
纯CSS3实现手风琴风格菜单具体步骤
2013/05/06 HTML / CSS
电气自动化求职信
2014/06/24 职场文书
社区服务活动小结
2014/07/08 职场文书
2015年学校党支部工作总结
2015/04/01 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers
golang http使用踩过的坑与填坑指南
2021/04/27 Golang
Python包管理工具pip的15 个使用小技巧
2021/05/17 Python