Add __ne__ built-in function
In Python 3 __ne__ by default delegates to __eq__ and inverts the result, but in Python 2 they urge you to define __ne__ when you define __eq__ for it to work properly [1].There are no implied relationships among the comparison operators. The truth of x==y does not imply that x!=y is false. Accordingly, when defining __eq__(), one should also define __ne__() so that the operators will behave as expected. [1]https://docs.python.org/2/reference/datamodel.html#object.__ne__ Change-Id: Ic7d9b80b2d24f2e10e361fc22cc3439f7b8213ae
This commit is contained in:
parent
9338f3f367
commit
1f76d0a520
|
@ -63,6 +63,9 @@ class BiUnifier(object):
|
|||
def __eq__(self, other):
|
||||
return self.value == other.value and self.unifer == other.unifier
|
||||
|
||||
def __ne__(self, other):
|
||||
return not self.__eq__(other)
|
||||
|
||||
def __repr__(self):
|
||||
return "Value(value={}, unifier={})".format(
|
||||
repr(self.value), repr(self.unifier))
|
||||
|
@ -79,6 +82,9 @@ class BiUnifier(object):
|
|||
def __eq__(self, other):
|
||||
return self.var == other.var and self.unifier == other.unifier
|
||||
|
||||
def __ne__(self, other):
|
||||
return not self.__eq__(other)
|
||||
|
||||
def __init__(self, dictionary=None):
|
||||
# each value is a Value
|
||||
self.contents = {}
|
||||
|
@ -165,6 +171,9 @@ class BiUnifier(object):
|
|||
def __eq__(self, other):
|
||||
return self.contents == other.contents
|
||||
|
||||
def __ne__(self, other):
|
||||
return not self.__eq__(other)
|
||||
|
||||
|
||||
def binding_str(binding):
|
||||
"""Handles string conversion of either dictionary or Unifier."""
|
||||
|
|
Loading…
Reference in New Issue