如果我理解正确,则会调用对象的__cmp __()函数,以便在确定对象是否为集合的成员或"in"时评估集合中的所有对象.但是,这似乎不是集合的情况:
class MyObject(object):
def __init__(self, data):
self.data = data
def __cmp__(self, other):
return self.data-other.data
a = MyObject(5)
b = MyObject(5)
print a in [b] //evaluates to True, as I'd expect
print a in set([b]) //evaluates to False
Run Code Online (Sandbox Code Playgroud)
那么对象成员资格如何在集合中进行测试呢?