我“偶然”遇到了这个奇怪但有效的语法
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
也是。