[Python-Dev] Why doesn't functools.total_ordering use the existing ordering methods? (original) (raw)

Lennart Regebro regebro at gmail.com
Tue Apr 26 09:10:10 CEST 2011


On Mon, Apr 25, 2011 at 20:43, cool-RR <cool-rr at cool-rr.com> wrote:

Hello, Today I was trying to use totalordering for the first time. I was expecting that in order to implement e.g. x > y it would do not x < y and_ _not x == y, assuming that _lt_  and _eq_ are defined. But I see it just does y < x, which is problematic. For example if you have a class that is decorated by totalordering, and implements only _lt_  and _eq_, then trying to do x < y will result in infinite recursion. Why not have totalordering work in the way I suggested?

This has been partly fixed for Python 3.2, although it can still happen if you compare two types that both use the total_ordering decorator. See http://bugs.python.org/issue10042 .

-- Lennart Regebro: http://regebro.wordpress.com/ Porting to Python 3: http://python3porting.com/



More information about the Python-Dev mailing list