关于语法:Python整数递增与++

Python integer incrementing with ++

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

Possible Duplicate:
Python: Behaviour of increment and decrement operators

当我回顾我的vb6时,我总是自嘲:"什么现代语言不允许用双加号递增?":

1
number++

令我惊讶的是,我在python文档中找不到任何关于这个的信息。我真的要服从于number = number + 1吗?人们不使用++/--符号吗?


python不支持++,但您可以:

1
number += 1


简单地说,++--操作符在python中不存在,因为它们不是操作符,必须是语句。为了简单性和一致性,python中的所有名称空间修改都是一个语句。这是设计决策之一。因为整数是不可变的,唯一改变变量的方法就是重新分配它。

幸运的是,对于其他语言(如enumerate()itertools.count())中的++--的用例,我们有很好的工具。


你可以做到:

1
number += 1

对。在python中,++运算符不可用。吉多不喜欢这些接线员。


++在类C语言中使用方便的主要原因是跟踪索引。在Python中,您以抽象的方式处理数据,很少通过索引等进行增量。与++最接近的是迭代器的next方法。


你可以使用:

1
number += 1


请看一下Python中递增和递减操作符的行为,以了解这不起作用的原因。

python并没有真正的++和——,我个人也从来没有觉得这是一个损失。

与语义不总是清晰的运算符相比,我更喜欢具有清晰名称的函数(因此,关于+X与X++的经典访谈问题以及重载它的困难)。我也从未对后增量对于可读性的作用有过极大的兴趣。

您总是可以用清晰的增量语义定义一些包装类(如accumulator),然后执行x.increment()或x.incrementandreturnprev()之类的操作。


这里有一个解释:http://bytes.com/topic/python/answers/444733-why-there-no-post-pre-increment-operator-python

然而,在Python哲学中缺少这个操作符可以提高一致性并避免隐含性。

此外,这种增量在Python代码中并没有广泛使用,因为Python具有迭代器模式和函数枚举的强大实现。