用++递增的Python整数

当我回顾我的VB6时代并思考时,我总是对自己笑,“什么现代语言不允许使用双加号递增?”:

number++

令我惊讶的是,我在Python文档中找不到任何关于此的内容。我真的必须服从于number = number + 1吗?人们不使用++/--表示法吗?

1480740 次浏览

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

number += 1

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

你可以这样做:

number += 1

查看Python中递增和递减运算符的行为以解释为什么这不起作用。

Python实际上没有++和--,我个人从未觉得这是一种损失。

我更喜欢名称清晰的函数,而不是语义学不总是清晰的运算符(因此就有了关于++x与x++以及重载它的困难的经典面试问题)。我也从来不喜欢后增量对易读性的影响。

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

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

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

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

简单地说,++--运算符在Python中不存在,因为它们不会是运营商,它们必须是声明。为了简单和一致,Python中所有的命名空间修改都是一条语句。这是设计决策之一。由于整数是不可变的,“更改”变量的唯一方法是重新分配它。

幸运的是,我们有很棒的工具来处理其他语言中的++--的用例,比如enumerate()itertools.count()

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