可以在Python中实现二进制++运算符吗?

是否可以在Python中使用++运算符实现一个类,例如使a ++ b为有效表达式?

jujishou1984 回答:可以在Python中实现二进制++运算符吗?

a++b实际上会调用两个运算符,但是可以的。

+b将呼叫__pos__。然后,您将__add__ +ba

 class K:
    def __pos__(self):
        return self
    def __add__(self,*args):
        return self

a = K()
b = K()

a++b

print(a++b)
,

Python将a++b解释为a + (+b),因此这是通过覆盖__pos__运算符(只要我们不打算使用它)来实现它的一种方法:>

class Digits(int):
    def __pos__(self):
        class Concat:
            def __init__(self,val):
                self.val = val
            def __radd__(self,lhs):
                return Digits(str(lhs)+str(self.val))
        return Concat(self)
print(Digits(1) + Digits(23))
print(Digits(1) + (+Digits(23)))
print(Digits(1) ++ Digits(23))

其中包含以下内容:

24
123
123
本文链接:https://www.f2er.com/3163435.html

大家都在问