[Python-Dev] trailing commas on statements

R. David Murray rdmurray at bitdance.com
Tue Aug 11 19:01:11 CEST 2015


On Wed, 12 Aug 2015 01:03:38 +1000, Chris Angelico <rosuav at gmail.com> wrote:
> On Wed, Aug 12, 2015 at 12:46 AM, R. David Murray <rdmurray at bitdance.com> wrote:
> > (If you wanted to fix an 'oops' trailing comma syntax issue, I'd vote for
> > disallowing trailing commas outside of ().  The number of times I've
> > ended up with an unintentional tuple after converting a dictionary to a
> > series of assignments outnumbers both of the above :)  Note, I am *not*
> > suggesting doing this!)
> 
> Outside of any form of bracket, I hope you mean. The ability to leave
> a trailing comma on a list or dict is well worth keeping:
> 
> func = {
>     "+": operator.add,
>     "-": operator.sub,
>     "*": operator.mul,
>     "/": operator.truediv,
> }

Sorry, "trailing comma outside ()" was a shorthand for 'trailing comma
on a complete statement'.  That is, what trips me up is going from
something like:

    dict(abc=1,
         foo=2,
         bar=3,
         )

to:

      abc = 1,
      foo = 2,
      bar = 3,

That is, I got rid of the dict(), but forgot to delete the commas.
(Real world examples are more complex and it is often that the
transformation gets done piecemeal and/or via cut and paste and I only
miss one or two of the commas...

But, for backward compatibility reasons, we wouldn't change it even if
everyone thought it was a good idea for some reason :)

--David


More information about the Python-Dev mailing list