Python整数递增与++

时间:2010-04-13 19:45:14

标签: python syntax

  

可能重复:
  Python: Behaviour of increment and decrement operators

当我回顾自己的VB6时,我总是嘲笑自己,并且想:“现代语言不允许用双加号增加?”:

number++

令我惊讶的是,我在Python文档中找不到任何相关内容。我真的要接受number = number + 1吗?人们不能使用++/--符号吗?

8 个答案:

答案 0 :(得分:1204)

Python不支持++,但你可以这样做:

number += 1

答案 1 :(得分:405)

简单地说,++--运算符在Python中不存在,因为它们不是运算符,它们必须是语句< / em>的。为简单起见和一致性,Python中的所有命名空间修改都是一个声明。这是设计决策之一。因为整数是不可变的,所以“改变”变量的唯一方法就是重新分配它。

幸运的是,我们为其他语言的++--用例提供了很棒的工具,例如enumerate()itertools.count()

答案 2 :(得分:44)

你可以这样做:

number += 1

答案 3 :(得分:24)

是。 ++运算符在Python中不可用。 Guido不喜欢这些运营商。

答案 4 :(得分:20)

您可以使用:

number += 1

答案 5 :(得分:20)

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

答案 6 :(得分:11)

请查看Behaviour of increment and decrement operators in Python,了解为何无效。

Python并没有真正拥有++和 - 而且我个人从未觉得这是一种损失。

我更喜欢具有明确名称的函数到具有非始终清晰语义的运算符(因此关于++ x与x ++的经典访谈问题以及重载它的困难)。我也从未成为后增量对可读性的忠实粉丝。

您总是可以使用明确的增量语义定义一些包装类(如累加器),然后执行类似x.increment()或x.incrementAndReturnPrev()

的操作。

答案 7 :(得分:8)

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

然而,缺少这个运算符在python哲学中增加了一致性并避免了隐含性。

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