我差点把它作为对其他答案的评论,但这本身就是一个答案。
为了使您的项目可排序,它们只需要实现
__lt__。这是内置排序使用的唯一方法。
其他比较还是
functools.total_ordering仅在您确实要对类使用比较运算符时才需要。
为了使您的项目可散列,请
__hash__按照其他说明实施。您还应该
__eq__以兼容的方式实现-等效的项目应使用相同的哈希值。

我差点把它作为对其他答案的评论,但这本身就是一个答案。
为了使您的项目可排序,它们只需要实现
__lt__。这是内置排序使用的唯一方法。
其他比较还是
functools.total_ordering仅在您确实要对类使用比较运算符时才需要。
为了使您的项目可散列,请
__hash__按照其他说明实施。您还应该
__eq__以兼容的方式实现-等效的项目应使用相同的哈希值。