[Python-Dev] rich comparisions and old-style classes (original) (raw)

Michael Foord fuzzyman at voidspace.org.uk
Sun Apr 30 12:56:36 CEST 2006


Armin Rigo wrote:

Hi Fredrik,

On Sun, Apr 30, 2006 at 08:13:40AM +0200, Fredrik Lundh wrote:

trying to come up with a more concise description of the rich comparision machinery for pyref.infogami.com,

That's quite optimistic. It's a known dark area. I stumbled upon an oddity that I cannot really explain: I'm afraid the only way to understand this is to step through the C code. I'm sure there is a reason along the lines of "well, we tried this and that, now let's try this slightly different thing which might or might not result in the same methods being called again". I notice that you didn't try comparing an old-style instance with a new-style one :-) More pragmatically I'd suggest that you only describe the new-style behavior. Old-style classes have two levels of dispatching starting from the introduction of new-style classes in 2.2 and I'm sure that no docs apart from deep technical references should have to worry about that. I thought a good rule of thumb (especially for a tutorial) was :

Either define __cmp__ or define the rich comparison operators.

Doing both is a recipe for confusion.

Michael Foord

A bientot,

Armin.


Python-Dev mailing list Python-Dev at python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/fuzzyman%40voidspace.org.uk



More information about the Python-Dev mailing list