根据object.__eq__()文档,默认(即在object类中)实现==如下:
True if x is y else NotImplemented
Run Code Online (Sandbox Code Playgroud)
仍然遵循的文档NotImplemented,我推断这NotImplemented意味着 Python 运行时将尝试以相反的方式进行比较。y.__eq__(x)即如果x.__eq__(y)返回则尝试NotImplemented(在运算符的情况下==)。
现在,在 python 3.9 中False打印以下代码:True
class A:
pass
print(A() == A())
print(bool(NotImplemented))
Run Code Online (Sandbox Code Playgroud)
所以我的问题如下:文档在哪里提到了NotImplemented在上下文中的特殊行为__eq__?
PS:我在CPython 源代码中找到了答案,但我想这必须/应该在文档中的某个位置。