class Foo:
def __init__(self, num):
self.num = num
def __eq__(self, other):
return self.num == other.num
def __ne__(self, other): # __ne__ represents the != operator
return self.num != other.num
"""
Magic method __ne__ stands for not equal. So this magic method defines or
overwrites what should "!=" sign do with objects.
"""
class Test:
def __init__(self, x):
self.x = x
def __ne__(self, other):
"""
Compares attribute "x" of objects, self stands for 1st object
and other stands for object after "!=" sign. (so t is self and t2 other)
"""
return self.x != other.x # Should be used on objects of the same type
t = Test(3)
t2 = Test(2)
print(t != t2) # Now I call the __ne__ method by using "!=" sign.