为什么 Python 将加法运算符的连续重复视为单次重复?

Why does Python treat consecutive repetitions of the addition operator as just a single repetition?

今天我注意到 Python 解释器将加法运算符的连续重复视为运算符的一次重复。例如:

>>> 1 ++ 2
3

发生此类事件时不简单地引发错误有什么用?我发现输入

的程序员更可信
>>> 1 -+-++ 2

只是他们的想法;这不太可能有意出现在代码中。

好像没什么用,写个类似的东西

>>> +-1

简单地returns-1,说明该运算并没有使数为正数,而是简单地进行恒等运算。

这是数学。虽然对正常人来说没有意义,但 python +(+1) and -(-1) 是 +,+(-1) and -(+1) 是 -。 回到问题,不仅仅是 python 这样做。这是数学思维。就像告诉计算机一个叫string的变量等于29,听起来不对但计算机认为是正常的。

因为超载了。它是加法运算符(由 __add__ method), and also the unary positive operator (implemented by __pos__). Compare that to -, which is the subtraction operator (__sub__) and unary negative operator (__neg__ 实现)。

因此,例如,1 ++ 2 被解析为 1 + (+ 2),对于整数可以简化为 1 + 2,但对于其他类型则不一定。参见 What's the purpose of the + (pos) unary operator in Python?