A Bug By Any Other Name ...

Steven D'Aprano steve at REMOVE-THIS-cybersource.com.au
Mon Jul 6 05:58:21 EDT 2009

On Mon, 06 Jul 2009 02:19:51 -0300, Gabriel Genellina wrote:

> En Mon, 06 Jul 2009 00:28:43 -0300, Steven D'Aprano
> <steve at remove-this-cybersource.com.au> escribió:
>> On Mon, 06 Jul 2009 14:32:46 +1200, Lawrence D'Oliveiro wrote:
>>> I wonder how many people have been tripped up by the fact that
>>>     ++n
>>> and
>>>     --n
>>> fail silently for numeric-valued n.
>> What do you mean, "fail silently"? They do exactly what you should
>> expect:
>>>>> ++5  # positive of a positive number is positive
>> I'm not sure what "bug" you're seeing. Perhaps it's your expectations
>> that are buggy, not Python.
> Well, those expectations are taken seriously when new features are
> introduced into the language - and sometimes the feature is dismissed
> just because it would be confusing for some. If a += 1 works, expecting
> ++a to have the same meaning is very reasonable (for those coming from
> languages with a ++ operator, like C or Java) - more when ++a is a
> perfectly valid expression. If this issue isn't listed under the various
> "Python gotchas" articles, it should...

The fact that it isn't suggests strongly to me that it isn't that common 
a surprise even for Java and C programmers. This is the first time I've 
seen anyone raise it as an issue.

There are plenty of other languages other than Java and C. If we start 
listing every feature of Python that's different from some other 
language, we'll never end.

For what it's worth, Ruby appears to behave the same as Python:

$ irb
irb(main):001:0> n = 5
=> 5
irb(main):002:0> ++n
=> 5
irb(main):003:0> --n
=> 5
irb(main):004:0> -+n
=> -5


More information about the Python-list mailing list