博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python is id == 的差别,cmp方法
阅读量:5021 次
发布时间:2019-06-12

本文共 643 字,大约阅读时间需要 2 分钟。

1. id():获取的是对象在内存中的地址

2. is :比对2个变量的对象引用(对象在内存中的地址,即id() 获得的值)是否相同。如果相同则返回True,否则返回False。换句话说,就是比对2个变量的对象引用是否指向同一个对象。

3. ==:比对2个变量指向的对象的内容是否相同。

 

下面通过cmp函数比较两个对象的差异:

1 class MyClass(object): 2     def __init__(self, name): 3         self.name = name 4  5     def __cmp__(self, other): 6         return cmp(self.name, other.name) 7  8  9 10 a = MyClass('leon')11 b = MyClass('leon')12 print a is b13 print a == b14 print id(a)15 print id(b)16 print cmp(a, b)

先看cmp函数的用法,原型为cmp(x, y),作用是比较两个对象x,y,如果x大于y返回正数,相等则返回0,否则返回负数,示例里MyClass类用了__cmp__,用以自定义比较对象,如果注释此方法,个人认为默认为会比较a,b对象的id值。

转载于:https://www.cnblogs.com/bjdxy/archive/2012/12/04/2801915.html

你可能感兴趣的文章
【eclipse jar包】在编写java代码时,为方便编程,常常会引用别人已经实现的方法,通常会封装成jar包,我们在编写时,只需引入到Eclipse中即可。...
查看>>
视频监控 封装[PlayCtrl.dll]的API
查看>>
软件工程APP进度更新
查看>>
Python 使用正则替换 re.sub
查看>>
CTF中那些脑洞大开的编码和加密
查看>>
简化工作流程 10款必备的HTML5开发工具
查看>>
c++ 调用外部程序exe-ShellExecuteEx
查看>>
Java进击C#——语法之知识点的改进
查看>>
IdentityServer流程图与相关术语
查看>>
BirdNet: a 3D Object Detection Framework from LiDAR information
查看>>
icon fonts入门
查看>>
【Django】如何按天 小时等查询统计?
查看>>
HDU2191(多重背包)
查看>>
测试用例(一)
查看>>
【转】 mysql反引号的使用(防冲突)
查看>>
邮件中的样式问题
查看>>
AJAX 状态值与状态码详解
查看>>
php面向对象编程(oop)基础知识示例解释
查看>>
1.在数组中找到与给定总和的配对
查看>>
树的子结构
查看>>