[Python-Dev] rich comparisions and old-style classes

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