重载比python少

时间:2017-04-28 23:35:59

标签: python comparison operator-overloading

我一直在摆弄python中的重载操作符,我遇到了一个问题。

所以我有一个类,其中包含我想要用于比较的值。

class comparison:

    def __init__(self, x):
        self.x = x

    ...

    def __lt__(self,other): 
        return self.x < other

使运算符重载超过。我在其他方面制定了条件,例如它必须是什么类型。

一个例子是

x = comparison(2)
x < 1 #--> False
x < 3 #--> True

我的问题是如何查看比较的第一部分? 我试图将第一部分限制为特定的部分。

一个例子是

7 < x # --> I don't want the first one to be an int

1 个答案:

答案 0 :(得分:2)

为此,您可以覆盖__gt__方法。

class comparison:
    ...
    def __gt__(self, other):
        ...
然后

7<comparison(2)会在您可以覆盖的调用comparison(2).__gt__(7)中进行转换。