On Sat, Dec 14, 2019 at 02:40:04PM +0200, Serhiy Storchaka wrote:
14.12.19 12:45, Steven D'Aprano пише:
The list.sort method is documented to only use less than:
https://docs.python.org/3/library/stdtypes.html#list.sort
but I don't think that is correct, it seems to use greater than if it exists and less than doesn't. My understanding is that items need to define one of l.t. or g.t. to make it sortable, not the full complement of six rich comparison methods.
What evidence do you have that it is not correct?
I might be misinterpreting the evidence, but sorting works on objects that define `__gt__` without `__lt__`. py> class A: ... def __init__(self, x): self.x = x ... def __gt__(self, other): return self.x > other.x ... py> L = [A(9), A(1), A(8)] py> L.sort() py> [obj.x for obj in L] [1, 8, 9] But the main part of my question is whether we should make the same guarantee for sorted, min and max as we already make for list.sort. -- Steven