[Python-Dev] cmp(x,x)

Raymond Hettinger python at rcn.com
Mon May 24 19:52:29 EDT 2004


[Bob Ippolito]
> I think the use case mentioned was something like Numeric, where it
may
> be useful for anArray == anotherArray to return an array of bool, not
a
> single True or False

The code in question is in Py_RichCompareBool() which *always* just
returns True or False.  That routine is called by list.__contains__()
and many other functions that expect a yes or no answer.  

The regular rich comparison function, Py_RichCompare() is the same as it
always was and can still return arrays of bools, complex numbers, or
anything at all.

IOW, we're still looking for a use case that warrants removing the
identity-implies-equality guarantee out of Py_RichCompareBool().  My
argument focused on the invariant assumptions that would be broken if
this was done.  Second, I don't believe that a sane use case will be
found for an object x that returns False for "bool(x==x)" and that
returns False for "x in [x]".  Stretching ones mind to find such an
object seems like an exercise in masochism.


Raymond




More information about the Python-Dev mailing list