为什么Python中没有“++”操作?

时间:2012-01-17 21:57:54

标签: python

  

可能重复:
  Why there are no ++ and — operators in Python?

这个问题可能看起来很奇怪,但我想知道为什么Python中没有这样的操作。

我知道,x += 1几乎和x++一样简单,但仍然如此。在我熟悉的大多数语言中都有这样的操作(C,C ++,Java,C#,JavaScript,PHP),但在Python中却没有。

也许它与这种语言的哲学有关?

6 个答案:

答案 0 :(得分:5)

避免先增量,后增加混淆并保持简单。

此类数据类型(例如intlong)也是不可变的。 ++--运算符的含义是更改当前数据类型。因此不受支持。

增量操作后,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

重复的问题如下,其中包含更多信息:

Why are there no ++ and --​ operators in Python?

Behaviour of increment and decrement operators in Python

答案 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):”并不是一个好主意=)它只在你需要数字时才有用