Python integer incrementing with ++

Question:

I’ve always laughed to myself when I’ve looked back at my VB6 days and thought, "What modern language doesn’t allow incrementing with double plus signs?":

number++

To my surprise, I can’t find anything about this in the Python docs. Must I really subject myself to number = number + 1? Don’t people use the ++ / -- notation?

Asked By: Znarkus

||

Answers:

Python doesn’t support ++, but you can do:

number += 1
Answered By: Daniel Stutzbach

Yes. The ++ operator is not available in Python. Guido doesn’t like these operators.

You can do:

number += 1
Answered By: knutin

Take a look at Behaviour of increment and decrement operators in Python for an explanation of why this doesn’t work.

Python doesn’t really have ++ and –, and I personally never felt it was such a loss.

I prefer functions with clear names to operators with non-always clear semantics (hence the classic interview question about ++x vs. x++ and the difficulties of overloading it). I’ve also never been a huge fan of what post-incrementation does for readability.

You could always define some wrapper class (like accumulator) with clear increment semantics, and then do something like x.increment() or x.incrementAndReturnPrev()

Answered By: Uri

Here there is an explanation:
http://bytes.com/topic/python/answers/444733-why-there-no-post-pre-increment-operator-python

However the absence of this operator is in the python philosophy increases consistency and avoids implicitness.

In addition, this kind of increments are not widely used in python code because python have a strong implementation of the iterator pattern plus the function enumerate.

Answered By: pygabriel

Simply put, the ++ and -- operators don’t exist in Python because they wouldn’t be operators, they would have to be statements. All namespace modification in Python is a statement, for simplicity and consistency. That’s one of the design decisions. And because integers are immutable, the only way to ‘change’ a variable is by reassigning it.

Fortunately we have wonderful tools for the use-cases of ++ and -- in other languages, like enumerate() and itertools.count().

Answered By: Thomas Wouters

The main reason ++ comes in handy in C-like languages is for keeping track of indices. In Python, you deal with data in an abstract way and seldom increment through indices and such. The closest-in-spirit thing to ++ is the next method of iterators.

Answered By: Mike Graham
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.