在不定义__cmp__的情况下比较Python对象
假设我在Python中创建了一个类,但我没有为这个类定义一个__cmp__
方法。现在我创建了这个类的两个实例,并对它们进行比较。Python会使用哪个比较方法呢?我运行了代码,发现比较它们是否相等时返回了false。那Python是比较内存地址吗?
class A(object):
def __init__(self, s):
self.s = s
def __str__(self):
return self.s
x1 = A("jim")
x2 = A("jim")
print x1 == x2
Shell说:
False
1 个回答
2
这段代码是一个简单的函数,它的名字叫做“lambda”。这个函数接收两个参数,分别是x和y。它的作用是检查这两个参数是否是同一个东西,也就是它们在内存中的地址是否相同。具体来说,id(x)
和id(y)
分别获取x和y在内存中的位置,如果这两个位置相同,说明x和y是同一个对象,函数就返回True;如果不同,返回False。