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

本问题已经有最佳答案,请猛点这里访问。

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

你可能感兴趣的:(python中有没有)