Reputation: 19
class NewClass:
def __init__(self, a):
self.a = a
def __contains__(self, item):
# ???
how to write # ???
to enable:
x in list_of_NewClassObject
and return True
or False
.
Upvotes: 0
Views: 1362
Reputation: 13415
As @PeterWood pointed out, you probably want to define __eq__
instead:
class NewClass(object):
def __init__(self, a):
self.a = a
def __eq__(self, item):
if isinstance(item, NewClass):
return self.a == item.a
return object.__eq__(self, item)
def __ne__(self, item):
return not self.__eq__(item)
def __hash__(self):
return hash(self.a)
Example:
>>> a = NewClass(1)
>>> b = NewClass(2)
>>> x = NewClass(1)
>>> x in [a, b]
True
Upvotes: 2