On Tue, Feb 9, 2016 at 12:41 PM, MRAB <pyt...@mrabarnett.plus.com> wrote:
> On 2016-02-09 00:53, Guido van Rossum wrote:>>>> The warning for 'assert (cond, msg)' was specifically put in because>> this is a nasty trap. It's *always* a mistaken attempt to write>> 'assert cond, msg' -- usually in an attempt to break a long line>> without using a backslash. I'd actually consider promoting it to a>> syntax error rather than removing the warning.>>>> Compared to other "lint warnings" this one is much nastier -- it is>> also much more certain that it is a mistake. (Much more certain than>> e.g. an undefined variable, which could still be legitimate code due>> to dynamic updates to globals() or builtins.)>> Would there be less chance of confusion if there were some kind of syntax> such as "assert cond with msg"?
Is assert the *only* statement that has a comma separating unrelated
items? Every other statement that uses a comma is separating identical
items (eg "import os, sys" - "os" and "sys" are equivalent), and
tokens that have completely different meaning are separated by a word.
The only other exception I can think of - pun intended - is the old
"except BaseException, e:" syntax, which got dropped in Py3. Maybe
it's time to introduce a new syntax with a view to deprecating the
comma syntax ("use this old syntax if you need to support Python
2.7").
+1.
ChrisA
_______________________________________________
Python-Dev mailing list
Pyth...@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: https://mail.python.org/mailman/options/python-dev/python-dev-ml%40activestate.com