# id函数:获取的是对象在内存中的地址

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

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

x = 1

y = 1

print id(x)

print id(y)

x = "adfasfdasfdasfdsa"

y = "adfasfdasfdasfdsa"

print id(x)

print id(y)

print 'x is y : %s' % (x is y)

print 'x == y : %s' % (x == y)

print 'cmp(x,y) : %s' % cmp(x, y)

class Test(object):

def __init__(self, id):

self.id = id

pass

def __cmp__(self, other):

return cmp(self.id, other.id)

x = Test(1)

y = Test(1)

print id(x)

print id(y)

print 'x is y : %s' % (x is y)

print 'x == y : %s' % (x == y)

print 'cmp(x,y) : %s' % cmp(x, y)

输出:

30901464

30901464

42512200

42512200

x is y : True

x == y : True

cmp(x,y) : 0

42565760 42565816 x is y : False x == y : True cmp(x,y) : 0