本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Why there are no ++ and operators in Python?
这个问题可能看起来很奇怪,但我想知道为什么Python中没有这样的操作。
我知道,x += 1几乎和x++一样简单,但仍然如此。 在我熟悉的大多数语言中都有这样的操作(C,C ++,Java,C#,JavaScript,PHP),但在Python中没有。
也许它与这种语言的哲学有关?
避免前增量,后增加混淆并保持简单。
此外,int,long等数据类型也是不可变的。 ++,--运算符的含义是更改当前数据类型。因此不受支持。
增量操作后,python对象本身会发生变化。
>>> a = int(10)
>>> b = a
>>> print id(a), id(b)
166744132 166744132
>>> a += 1
>>> print id(a), id(b)
166744120 166744132
>>> print a, b
11 10
重复的问题如下,其中包含更多信息:
为什么没有++和 - ? Python中的运算符?
Python中递增和递减运算符的行为
不变性不是问题:你没有改变数字5! (我似乎记得在一些非常早期的语言中,你实际上可以改变整数的值。显然这是一件坏事。)这只是一个设计选择。
虽然与Python没有直接关系,但请看一下:
为什么要避免使用JavaScript中的递增("++")和递减(" -")运算符?
简而言之,是的,这是一个语言设计决策。
第PEP-20号:
There should be one – and preferably only one – obvious way to do it.
您提到的所有语言都从C继承了运算符,其中指针算术的广泛使用使得递增和递减操作更加常见。使用速记不会增加Python的表现力,并且除了"C做到了"之外,没有其他理由将其添加到语言中。 (本身并不是一个非常有力的理由。)
这是编程语言结构的问题。 Python中并不经常需要增量运算符。相反,使用语句,例如范围(0,5)中的i。
我认为这是因为避免混淆副作用
使用++运算符的语言中的一个常见新手错误是混合了增量/减量运算符之前和之后的差异(优先级和返回值),Python喜欢消除语言"gotcha"-s。
经常"for i in range(0,5):"并不是一个好主意=)它只在你需要数字时才有用