您的位置:首页 > 编程语言 > Python开发

python is id == 的差别,cmp方法

2012-12-04 18:50 344 查看
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 b
13 print a == b
14 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值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: