More damage to intuition (was RE: [Python-Dev] Comparison of recursive objects)
Guido van Rossum
guido@digicool.com
Mon, 22 Jan 2001 11:02:15 -0500
> > My only concern is that under the old schele, two different numeric
> > extension types that somehow can't be compared will end up being
> > *equal*. To fix this, I propose that if the names compare equal, as a
> > last resort we compare the type pointers -- this should be consistent
> > too.
>
> Agreed, and sounds fine!
Checked in now.
While fixing the test_b1 code again, which depends on this behavior, I
thought of a refinement: it wouldn't be hard to make None compare
smaller than *anything* (including numbers).
Is this worth it?
diff -c -r2.113 object.c
*** object.c 2001/01/22 15:59:32 2.113
--- object.c 2001/01/22 16:03:38
***************
*** 550,555 ****
--- 550,561 ----
PyErr_Clear();
}
+ /* None is smaller than anything */
+ if (v == Py_None)
+ return -1;
+ if (w == Py_None)
+ return 1;
+
/* different type: compare type names */
if (v->ob_type->tp_as_number)
vname = "";
--Guido van Rossum (home page: http://www.python.org/~guido/)