我在Python 3.6的文档中找不到任何有用的东西。但是,3.10的文档说明:
默认情况下,
object
通过使用is
实现__eq__()
,返回在错误比较的情况下为CCD_ 4:CCD_。
这似乎也适用于Python 3.6。
class Foo():
pass
print(Foo().__eq__(Foo())) # prints NotImplemented
然而,我不明白为什么
print(Foo() == Foo()) # prints False
打印的不是NotImplemented
,而是False
。==
在这里做什么?
当未定义__eq__
时,Python计算object.__eq__(a, b)
,当且仅当它们是同一对象时返回True。
请参阅https://stackoverflow.com/a/63310298/3275464了解更多详细信息。