From: Windson yang Date: Fri, 14 Sep 2018 04:50:18 +0000 (+0800) Subject: bpo-34552: Clarify built-in types comparisons (GH-9035) X-Git-Tag: v3.8.0a1~1000 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1aeba7458d2aaf8a03b5d443179d122ceb2ccece;p=python bpo-34552: Clarify built-in types comparisons (GH-9035) Some updates to ancient text about comparisons; fixes bp-34552. --- diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst index f7f59cd3a6..fd59a5170d 100644 --- a/Doc/library/stdtypes.rst +++ b/Doc/library/stdtypes.rst @@ -20,10 +20,10 @@ rearrange their members in place, and don't return a specific item, never return the collection instance itself but ``None``. Some operations are supported by several object types; in particular, -practically all objects can be compared, tested for truth value, and converted -to a string (with the :func:`repr` function or the slightly different -:func:`str` function). The latter function is implicitly used when an object is -written by the :func:`print` function. +practically all objects can be compared for equality, tested for truth +value, and converted to a string (with the :func:`repr` function or the +slightly different :func:`str` function). The latter function is implicitly +used when an object is written by the :func:`print` function. .. _truth: @@ -164,12 +164,10 @@ This table summarizes the comparison operations: pair: objects; comparing Objects of different types, except different numeric types, never compare equal. -Furthermore, some types (for example, function objects) support only a degenerate -notion of comparison where any two objects of that type are unequal. The ``<``, -``<=``, ``>`` and ``>=`` operators will raise a :exc:`TypeError` exception when -comparing a complex number with another built-in numeric type, when the objects -are of different types that cannot be compared, or in other cases where there is -no defined ordering. +The ``==`` operator is always defined but for some object types (for example, +class objects) is equivalent to :keyword:`is`. The ``<``, ``<=``, ``>`` and ``>=`` +operators are only defined where they make sense; for example, they raise a +:exc:`TypeError` exception when one of the arguments is a complex number. .. index:: single: __eq__() (instance method) diff --git a/Misc/NEWS.d/next/Documentation/2018-09-12-10-18-04.bpo-34552.p9PoYv.rst b/Misc/NEWS.d/next/Documentation/2018-09-12-10-18-04.bpo-34552.p9PoYv.rst new file mode 100644 index 0000000000..9e7605bc6d --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2018-09-12-10-18-04.bpo-34552.p9PoYv.rst @@ -0,0 +1,2 @@ +Make clear that ``==`` operator sometimes is equivalent to `is`. The ``<``, +``<=``, ``>`` and ``>=`` operators are only defined where they make sense.