前言
看了Python猫
的文章《Python 为什么不支持 i++ 自增语法,不提供 ++ 操作符?》后,也想聊一聊这件事
开始
首先,这只是我自己的观点,不代表python开发时就是这么想的。
我个人认为,自增运算符会引起一些歧义,例如:
a+++++b
这个语句,在c++中分割时分割成这样了:
a ++ ++ +b
于是引发了报错:
代码:
#include <iostream> using namespace std; int main(){ int a = 10,b = 11; cout << a+++++b; return 0; }
期望分割成:
a++ + ++b
,答案:22
实际:a.cpp:5:13: error: expression is not assignable cout << a+++++b; ~~~^ 1 error generated.
当然这个语句除了c++的分割方法a++ ++ +b
和a++ + ++b
外还有:a+ ++ ++b
。显然,出现了歧义。
同样a-----b
也是
当然,以上部分只表明了加入自增减运算符
后不能加入当作数值来计算,但是他还是解释不了python不加入自增减运算符
的原因
取a++
和a--
的本意:
将a加/减1
的时候,还有什么理由呢?
我认为,在python中a++
和a--
排不上用场:
-
c++中
a++
和a--
的作用:#include <cstdio> using namespace std; int main(){ for(int i = 0;i < 10;i ++){ printf("%d",i); } return 0; }
而在pythpn中
for i in range(10): print(i)
c++中
a++
和a--
的作用:#include <cstdio> using namespace std; int main(){ int sum = 0; for(int i = 1;i <= 10;i ++){ sum += i; } printf("%d",sum); return 0; }
而在pythpn中
print(sum([i for i in range(10)]))
------------------------------------end------------------------------------
更多精彩内容,尽在hitroad杂货铺
作者
hit-road
拜拜,下课!
hit-road不定期跟新,不见不散!