Python 3 如何将内置对象(在 lhs 上)与用户定义的对象(在 rhs 上)进行比较?
内置__eq__
方法是否只是将比较委托给 rhs ( rhs.__eq__(self)
)?
我在文档中没有找到任何关于此的声明。文档状态:
不同类型的对象,除了不同的数值类型,永远不会比较相等。
这很容易引起误解,因为:
class X:
def __eq__(self, rhs)
return True
x = X()
'abc' == x # True
我认为 doc 声明应该改写如下:
不同内置类型的对象,除了不同的数值类型,永远不会比较相等。
并且应该进一步阐明如何执行与用户定义的类实例的比较。