class x:
def __init__(self,name):
self.name=name
def __str__(self):
return self.name
def __cmp__(self,other):
print("cmp method called with self="+str(self)+",other="+str(other))
return self.name==other.name
# return False
instance1=x("hello")
instance2=x("there")
print(instance1==instance2)
print(instance1.name==instance2.name)
这里的输出是:
cmp method called with self=hello,other=there
True
False
这不是我所期望的:我想说“如果名称字段相等,则两个实例相等”。
如果我只是return False
从__cmp__
函数中,这个报告也是True
如此!!如果我 return -1
,那么我得到False
- 但由于我正在尝试比较字符串,这感觉不对。
我在这里做错了什么?