[Python-bugs-list] [ python-Bugs-798652 ] Clarify trailing comma in func arg list

SourceForge.net noreply at sourceforge.net
Mon Sep 1 10:32:51 EDT 2003


Bugs item #798652, was opened at 2003-09-01 12:32
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=798652&group_id=5470

Category: Documentation
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Terry J. Reedy (tjreedy)
Assigned to: Nobody/Anonymous (nobody)
Summary: Clarify trailing comma in func arg list

Initial Comment:
Current Ref Man 5.3.4 Calls says after grammar:
"A trailing comma may be present after an argument 
list but does not affect the semantics. "
But this is not true if arg list ends with *expr or **expr:

>>> dict(*l,) # any function will do since not called
  File "<stdin>", line 1
    dict(*l,)
            ^ # points at ')'
SyntaxError: invalid syntax
>>> dict(**d,)
  File "<stdin>", line 1
    dict(**d,)
            ^ # points at ','
SyntaxError: invalid syntax

Suggestion: "If an argument list does *not* end with 
*expr or **expr, a trailing comma may be added 
without affecting the semantics."

The same exception applies to function defs as well as 
calls, but 7.5 Function definitions does not have a 
statement such as above.  However, the production for 
parameter_list does end with 'defparameter [","]'.  I 
suggest that this be the first of the parenthesized 
alternatives, as it logically should be, rather than the 
last, so it flows better and so that no one (ignorant 
that '[]' binds tighter than '|') could possible think that 
the '[,]' applies to the * and ** parts.  IE: change 

parameter_list  ::=  (defparameter ",")* 
    ("*" identifier [, "**" identifier] 
    | "**" identifier | defparameter [","]) 

to

parameter_list  ::=  (defparameter ",")* 
    (defparameter [","]
    |'*' identifier [, "**" identifier] 
    | "**" identifier)

Squeezing out a line is a suboptimazation.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=798652&group_id=5470



More information about the Python-bugs-list mailing list