[Python-Dev] Why is nan != nan?

Alexander Belopolsky alexander.belopolsky at gmail.com
Wed Mar 24 23:30:17 CET 2010

On Wed, Mar 24, 2010 at 6:21 PM, Raymond Hettinger
<raymond.hettinger at gmail.com> wrote:
> If we want to be able to reason about our programs,
> then we need to rely on equality relations being
> reflexsive, symmetric, and transitive.  Otherwise,
> containers and functions can't even make minimal
> guarantees about what they do.


> ..  We should probably draw the
> line at well-defined numeric contexts such as the decimal module
> and stop trying to propagate NaN awareness throughout the
> entire object model.

I am not sure what this means in practical terms.   Should
float('nan') == float('nan') return True or should float('nan') raise
an exception to begin with?   I would prefer the former.

More information about the Python-Dev mailing list