当在Python 3.6中没有定义__eq__时,==的行为如何



我在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了解更多详细信息。

相关内容

  • 没有找到相关文章

最新更新