Matsuoka Takuo <motogeom...@gmail.com>:
>
> Now, is "1,2," more boxed up than "*(1,2)," is? The *current* rule
> surely says the former is a tuple at some places and the latter
> is not,

Actually, this was wrong. First of all,

>>> *(1,2),
(1, 2)

Moreover, while the Language Reference says

  return_stmt ::=  "return" [expression_list]

at

https://docs.python.org/3/reference/simple_stmts.html#the-return-statement

things like

  return *(),

are already allowed and () gets returned in this case, and so on! I
haven't examined everything, but so far, subscription is the only
place I've found where a starred expression in place of an expression
list indeed raises SyntaxError.

In particular, there really doesn't seem to be any reason why a
starred expression should be rejected from any place where an
expression list is accepted. In fact, rejection should _not_ be
expected, it seems.

My proposal at this point would be:
(1) remove the definition of "expression_list" from the specification of
the syntax
(2) replace every occurrence of it in the specification with
"starred_expression".

At most places this seems to only recover the current behaviour. (Even
if this idea does not survive in the end, I think the Language Reference
should be fixed to describe the behaviour correctly. The actual
behaviour is making better sense to me than what the Reference is
describing now.)

A minor question to be left then would be which new instance of
"starred_expression" in the specification of the syntax may further be
replaced with the optional one or "[starred_expression]", e.g.,
whether

  s[]

would be better allowed and evaluated to s.__getitem__(()). This may
be complicated. For example, I'm already used to returning None with

  return

and so on. Even then, s[] doesn't seem very bad to me.

Best regards,
Takuo
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/6CKPSNDUPMA2HMX2I25ECFEQ4F4CD2XB/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to