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 Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com