要覆盖的最小比较运算符集

时间:2013-12-15 12:14:35

标签: python operators override

我想在Python中覆盖所有比较运算符(==,!=,<,< =,>,> =),我想尽我所能。从逻辑的角度来看,定义两个任何运算符(不包括对:==和!=,<和> =,>和< =)就足够了。在Python中覆盖这些运算符的最小集合是什么?这样就够了吗?

class MyInt:
    __init__(self, num):
        self.num = num
    __eq__(self, other):
        return self.num == other.num
    __lt__(self, other):
        return self.num < other.num

1 个答案:

答案 0 :(得分:5)

functools.total_ordering装饰器应用于您的班级。来自其文档:

  

该课程必须定义__lt__()__le__()__gt__()或其中一个   __ge__()。此外,该课程应提供__eq__()方法。