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函数,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对乐购源码网址的支持!

id在python中是什么意思_Python中的id()函数指的什么相关推荐

  1. python大型项目中的日志模块_Python中日志模块的使用

    前言 程序和脚本往往是无人值守运行的,一旦发生问题,就需要我们去追溯当时的情况来定位问题的原因. 这便需要我们在程序和脚本中引入日志的功能. 相比于print信息,使用logging日志有以下优点 可 ...

  2. python中的元类_Python中的元类(metaclass)

    提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解.他知道这肯定和自身有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理 ...

  3. python管理数据库的库_Python中管理数据库

    前言:Python中是利用MySQL模块和数据库之间建立联系. MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL ...

  4. python如何判断为空_python中怎么判断是否为空

    其中None的特殊之处在于,它既不是数值0,也不是某个数据结构的空值,它本身就是一个空值对象.它的类型是NoneType,它遵循单例模式,也就是说,在同一命名空间下的所有None其实质上都是同一个空值 ...

  5. python diango 增删改查_python中关于django对数据库Mysql的增删改查操作详解

    下面小编就为大家带来一篇python django 增删改查操作 数据库Mysql.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 下面介绍一下django增删改查操作: ...

  6. python哪些是可变对象_python 中的可变对象与不可变对象

    近日辞职待工,没有实际的项目与大家分享.暂写写在实际运用python中遇到的关于可变对象和不可变对象的坑. 首先我们需要明确一个概念,在python中一且皆对象.我们一般定义一个变量a=0,其实质a是 ...

  7. python爬取喜马拉雅收费_Python中使用requests和parsel爬取喜马拉雅电台音频

    场景 喜马拉雅电台: 找到一步小说音频,这里以下面为例 实现 找到下载地址 使用谷歌浏览器打开上面网址,按F12打开调试,点击播放按钮后,然后找到Network下的Media下的Headers下的Re ...

  8. python列表怎么写文件_python中以字典为元素的列表怎么写入文本文件

    python如何将列表中的元素添加进字典纵然被命运的铁蹄狠狠践踏,也顽强地长出自己的根芽. 录入自己和另一个人的名字的汉语拼音简写,然后依据标识符中字母的数值两个人,一颗心,依偎的不是爱情而是那小温暖 ...

  9. python中赋值语句的作用_python中return可以使用赋值语句吗?

    在python中,有各种不同类型的语句.一个python程序是由模块构成的;一个模块由一条或多条语句组成;每个语句由不同的表达式组成;表达式可以创建和操作对象.下面来看看python中的语句. 赋值语 ...

  10. python整数和浮点数相乘_python中整数除法和浮点数到整数转换之间的区别是什么原因?...

    我要说的是,您的观察表明这两个操作应该在直观上相似,因为在正数上它们的行为相同.但是,如果您查看它们的起源(一个来自数学,另一个来自计算机科学),那么它们的不同行为更有意义. 您可以在其中查看概念: ...

最新文章

  1. websocket并发性测试
  2. mysql数据库的分离_数据库分离和附加 (SQL Server)
  3. 毕业之后......
  4. sqlserver中在建立与服务器的连接时出错
  5. 选择技术栈构建通用平台
  6. 值得收藏的130个神器网站
  7. 1月17日云栖精选夜读:阿里云云数据库开了一个未来大会,谈了谈2038年的数据库趋势...
  8. Android apk的安装、卸载、更新升级(通过Eclipse实现静默安装)
  9. rds基于什么开发_玩物得志: 基于DataWorks+MaxCompute+MC-Hologres 构建大数据平台
  10. 电机学感应电动机重点知识总结(现有题目中反映的)
  11. DiffImg_图片对比(DiffImg)
  12. 歌词模拟项目c语言,C语言之歌词解析
  13. [CSP-S模拟测试]:游戏(最短路)
  14. Android系统编译aosp
  15. ios:新浪微博iphone客户端
  16. 刘鹏:与聪明人一起做精彩的事!那么,谁是聪明人?
  17. 磨砂服务器波特率修改,MOXA串口服务器产品配置说明 附图.doc
  18. 一次性刻录光盘内容(刻录完成后不能再编辑光盘中内容)
  19. 大数据知识框架体系总结梳理
  20. cgb2110-day05

热门文章

  1. 大师,终见大师——中国人工智能泰斗涂序彦
  2. PHP编程第八期线上培训班课程
  3. 一级b计算机高职高专模拟,全国计算机等级考试一级B培训教程:Windows环境
  4. jquery回弹_jQuery实现导航回弹效果
  5. php 开启常驻进程,swoole如何常驻进程
  6. RLT USB WiFi驱动源码分析(Type A)
  7. ECSTORE验证码优化
  8. 程序员是怎样撩到一个女朋友的?
  9. 区块链扫盲之4,链与币,通证
  10. 买手机就要买大容量的以及为什么手机内存满了之后会变卡