这个问题可能看起来很奇怪,但我想知道为什么Python中没有这样的操作。
我知道,x += 1
几乎和x++
一样简单,但仍然如此。在我熟悉的大多数语言中都有这样的操作(C,C ++,Java,C#,JavaScript,PHP),但在Python中却没有。
也许它与这种语言的哲学有关?
答案 0 :(得分:5)
避免先增量,后增加混淆并保持简单。
此类数据类型(例如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
重复的问题如下,其中包含更多信息:
答案 1 :(得分:4)
虽然与Python没有直接关系,但请看一下:
Why avoid increment ("++") and decrement ("--") operators in JavaScript?
简而言之,是的,这是一项语言设计决定。
答案 2 :(得分:3)
Quoth PEP-20:
应该有一种 - 最好只有一种 - 显而易见的方法。
您提到的所有语言都从C继承了运算符,其中指针算术的广泛使用使得递增和递减操作更加常见。使用速记不会增加Python的表现力,并且除了“C做到了”之外,没有其他理由将其添加到语言中。 (其本身并不是一个非常有力的理由。)
答案 3 :(得分:1)
我认为这是因为避免混淆副作用
使用++运算符的语言中的一个常见新手错误正在混合前后增量/减量运算符之间的差异(优先级和返回值),Python喜欢消除语言“gotcha”-s 。
答案 4 :(得分:1)
这是一个编程语言结构的问题。 Python中并不经常需要增量运算符。而是使用语句,例如 for i in range(0,5)。
答案 5 :(得分:0)
经常“for i in range(0,5):”并不是一个好主意=)它只在你需要数字时才有用