Suggestion for "syntax error": ++i, --i
Christian Ergh
christian.ergh at gmail.com
Mon Dec 13 11:09:59 EST 2004
Hmm, i never liked the i++ syntax, because there is a value asignment
behind it and it does not show - except the case you are already used to it.
>>> i = 1
>>> i +=1
>>> i
2
I like this one better, because you see the assignment at once, it is
easy to read and inuitive usability is given - in my opinion.
Chris
Petr Prikryl wrote:
> Hi,
>
> Summary: In my opinion, the C-like prefix
> increment and decrement operators (++i and --i)
> should be marked as "syntax error".
>
>
> Current situation: try... (Python 2.4 (#60, ...))
>
>>>>i = 1
>>>>i
>
> 1
>
>>>>i++
>
> File "<stdin>", line 1
> i++
> ^
> SyntaxError: invalid syntax
>
>>>>++i
>
> 1
>
>>>>--i
>
> 1
>
>
> Reason for how ++i and --i behaves in Python is
> that it is probably treated as (-(-i)) and (+(+i))
> respectively.
>
> Rationale: My guess is that many Python users
> do use other languages at the same time.
> The C-family languages do use the prefix increment
> and decrement operators. When used in Python
> no warning appears -- the code simply does not work
> as expected. In the same time, there is probably no
> reason to use the increment and decrement
> prefix operators. On the other hand, the newcommer
> or the programmer that "types ++i automatically
> because of brain synapses say he/she should..."
> is not warned until something does not work.
>
> Con: The situation must be recognized by the parser
> (i.e. someone have to implement it).
>
> Pro: No runtime overhead except of the detection
> of the situation. As Python is a good candidate
> to be used as the language for teaching, the "syntax
> error" would be the pedagogical plus.
>
> Personal experience: Many things in Python work
> intuitively. My C++ experience "forced me" to use
> ++i as described above. I use iteration more these
> days and I know about the ++i problem invisibility
> in Python. But I had to learn by mistake. The ++i
> behaviour is not intuitive for me.
>
> Your opinion?
>
>
More information about the Python-list
mailing list