0

我想用自定义二元运算符实现一个类,这样

class One:
    def __lt__(self,other):
        return 1 < other

Python 似乎能够为 operator 自动创建反向操作>, >=, <, <=,但是,如果我使用该getattr()方法,NotImplemented则会返回:

>>> a = One()
>>> a < 2
True
>>> 2 > a # Works without explicit implementation
True

# Now using the getter:
>>> getattr(a, '__lt__')(2)
True
>>> getattr(2, '__gt__')(a) # Does not work as above
NotImplemented

在这种情况下,使吸气剂也能正常工作的正确方法是什么?我知道对于其他运营商来说,都有各自的逆向魔法方法,但是上面提到的四种似乎都没有。

4

0 回答 0