在 Python 中,我经常发现自己必须为相等性应该基于特定数据的类覆盖相等性和散列。我通常最终将它抽象为这样的超类,但我想知道 Python 是否内置了类似的东西。这似乎是一项常见的任务。
class ValueType(object):
def __init__(self, *args, **kwargs): super(ValueType, self).__init__(*args, **kwargs)
def __eq__(self, other): return self._key() == other._key()
def __ne__(self, other): return self._key() != other._key()
def __hash__(self): return hash(self._key())