在Python中,==
运算符是根据magic方法__eq__
实现的,该方法默认情况下是通过身份比较来实现的。但是,您可以重写此方法,以提供自己的对象相等性概念。请注意,如果您这样做,通常也将至少覆盖__ne__
(实现!=
操作符)和__hash__
计算实例的哈希码。
我发现,即使在Python中,使我的__eq__
实现符合Java语言中为该equals
方法的实现所列出的规则也非常有帮助:
最后一个可能应该替换null
为None
,但是规则在Python中并不像Java中那么容易。