我“偶然”遇到了这个奇怪但有效的语法

i=3
print i+++i #outputs 6
print i+++++i #outputs 6
print i+-+i #outputs 0
print i+--+i #outputs 6

(对于每个偶数:负符号,它输出6个其他0,为什么?)
这有什么用吗?
更新(不要用错误的方式..我喜欢python):
python的一个原则是
应该有一种——最好只有一种——显而易见的方法来做到这一点。似乎有无数种方法可以做到i+1

最佳答案

由于python没有c-style++或--operators,所以只剩下一个运算符来假设您在否定或肯定(?)左边的值。
例如,您希望i + +5是什么?

i=3
print i + +(+i) #outputs 6
print i + +(+(+(+i))) #outputs 6
print i + -(+i) #outputs 0
print i + -(-(+i)) #outputs 6

值得注意的是,从Python Grammar Specification中,您将看到行:
factor: ('+'|'-'|'~') factor | power

这意味着表达式中的因子可以是前面有+-~的因子。也就是说,它是递归的,所以如果5是一个因子(这是因为因子->功率->数字),那么-5是一个因子,因此--5--------5也是。

09-26 20:25