From: Gouvernathor <44340603+Gouvernathor@users.noreply.github.com> Date: Sun, 3 Mar 2024 00:45:48 +0000 (+0100) Subject: gh-72971: Clarify the special no-TypeError behavior for equality (#110729) X-Git-Tag: v3.13.0a5~135 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=67f742e03aacb6217c5bb496e31f96dbf31c6f86;p=thirdparty%2FPython%2Fcpython.git gh-72971: Clarify the special no-TypeError behavior for equality (#110729) --- diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst index 82106a41c4c4..75b656f385d3 100644 --- a/Doc/reference/datamodel.rst +++ b/Doc/reference/datamodel.rst @@ -1812,12 +1812,15 @@ Basic customization rather, :meth:`__lt__` and :meth:`__gt__` are each other's reflection, :meth:`__le__` and :meth:`__ge__` are each other's reflection, and :meth:`__eq__` and :meth:`__ne__` are their own reflection. - If the operands are of different types, and right operand's type is + If the operands are of different types, and the right operand's type is a direct or indirect subclass of the left operand's type, the reflected method of the right operand has priority, otherwise the left operand's method has priority. Virtual subclassing is not considered. + When no appropriate method returns any value other than :data:`NotImplemented`, the + ``==`` and ``!=`` operators will fall back to ``is`` and ``is not``, respectively. + .. method:: object.__hash__(self) .. index::