I am curious why python doesn’t support pre-increment/decrement operator. Do we have any formal conclusion/
much discuss in:
I am curious why python doesn’t support pre-increment/decrement operator. Do we have any formal conclusion/
much discuss in:
IMO, the links you post pretty much cover it. Python is not C, and has managed for a long time without ++ and – operators. Also, Python distinguishes between operators and statements. Augmented assignment (+=) is a statement, would you have ++ be a statement (which makes it mostly useless) or an operator (with unexpected assignment semantics)?
Basically ++ and – don’t fit well with Python, and aren’t needed. I’m -1.
Thanks for the idea.
Agreed. It’s really just an implicit syntactic shortcut (which Python has a tendency to avoid). I find it difficult to imagine a scenario where you couldn’t just use +=
, enum()
or next()
instead.
Although I’m not opposed to the idea of ++i
raising a SyntaxError
, as mentioned on the bpo issue.
Thanks, guys. I have this question because i found c、java and js support this satetement.
Although I’m not opposed to the idea of
++i
raising aSyntaxError
, as mentioned on the bpo issue.
kyle abserved this detail If the python object is immutable object, we don’t support such complex statement, should we raise the syntaxError when user use ++i
too.
ps: i found some scan tool have this check rule, such as: sonarqube
Well, can I say that i++ and i-- are quite handy? I means, it seems stupid, you have to write only one more character (or 3, if you want to make it more readable). But I can’t explain why, I feel it much more simple, and when I program in Java the only thing that really make me happier is i++
and the implicit conversion between strings and other object with +
I think ++
and --
should be considered operators. And the good think it’s they could also used for other purposes… for example, you can write iterator++
instead of next(iterator)
!
About ++i etc, I’m against it. I think they only complicate the reading of code.
For ++i
one can use.
(i := i + 1)
In languages like C, i++
yields the current value of i
, and then increments. To match the semantics of next(it)
it should be ++it
.
I agree Python doesn’t need operators with semantics that default to modifying their arguments.
Thank you for everybody’s comment.
According to comments, most people doesn’t support in(de)crement operation.
I write a PR which could raise a syntax error if user use in(de)crement operation(https://github.com/python/cpython/pull/18297) .
It will break the backward compatibility, so it need core developers’ support.