当我回顾我的 VB6 日子并想,“什么现代语言不允许用双加号递增?”时,我总是对自己笑:
number++
令我惊讶的是,我在 Python 文档中找不到任何关于此的内容。我真的必须服从number = number + 1
吗?人们不使用++
/--
符号吗?
Python 不支持++
,但你可以这样做:
number += 1
简而言之,++
and--
运算符在 Python 中不存在,因为它们不是运算符,它们必须是语句。为了简单和一致性,Python 中的所有命名空间修改都是一个语句。这是设计决策之一。而且因为整数是不可变的,所以“改变”变量的唯一方法是重新分配它。
++
幸运的是,我们为--
其他语言的用例提供了出色的工具,例如enumerate()
和itertools.count()
.
你可以做:
number += 1
是的。该++
运算符在 Python 中不可用。Guido 不喜欢这些运算符。
++ 在类 C 语言中派上用场的主要原因是跟踪索引。在 Python 中,您以抽象的方式处理数据,很少通过索引等增加。最接近精神的是迭代器++
的方法。next
查看Python 中递增和递减运算符的行为,了解为什么这不起作用。
Python 并没有真正的 ++ 和 --,而且我个人从未觉得这是一种损失。
我更喜欢名称清晰的函数,而不是语义不总是清晰的运算符(因此经典的面试问题是关于 ++x 与 x++ 以及重载它的困难)。我也从来不是后增量对可读性所做的事情的忠实粉丝。
您总是可以定义一些具有明确增量语义的包装类(如累加器),然后执行 x.increment() 或 x.incrementAndReturnPrev() 之类的操作
这里有一个解释: http ://bytes.com/topic/python/answers/444733-why-there-no-post-pre-increment-operator-python
然而,python 哲学中没有这个运算符增加了一致性并避免了隐含性。
此外,这种增量在 python 代码中没有广泛使用,因为 python 对迭代器模式加上函数 enumerate 有很强的实现。