[Python-Dev] Allow tuple unpacking in return and yield statements (original) (raw)
Guido van Rossum gvanrossum at gmail.com
Sat Nov 25 18:26:45 EST 2017
- Previous message (by thread): [Python-Dev] Allow tuple unpacking in return and yield statements
- Next message (by thread): [Python-Dev] Allow tuple unpacking in return and yield statements
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I think the proposal is reasonable and won't require a PEP.
On Nov 25, 2017 3:25 PM, "Terry Reedy" <tjreedy at udel.edu> wrote:
On 11/25/2017 1:55 AM, David Cuthbert wrote:
First time contributing back -- if I should be filing a PEP or something like that for this, please let me know.
I don't think a PEP is needed. Coming from https://bugs.python.org/issue32117, unparenthesized tuple unpacking is allowed in assignments: rest = (4, 5, 6) a = 1, 2, 3, *rest Because except for (), it is ',', not '()' that makes a tuple a tuple. but not in yield or return statements (these result in SyntaxErrors): return 1, 2, 3, *rest yield 1, 2, 3, *rest To be crystal clear, a parenthesized tuple with unpacking is valid. return (1, 2, 3, *rest) yield (1, 2, 3, *rest) So is an un-parenthesized tuple without unpacking. Since return and yield are often the first half of a cross-namespace assignment, requiring the () is a bit surprising. Perhaps someone else has a good reason for the difference. Otherwise, +1 on the change. The unpacking in assignments was enabled by a pre-3.2 commit that I haven't yet been able to track back to a discussion, but I suspect this asymmetry is unintentional. Here's the original commit: https://github.com/python/cpython/commit/4905e80c3d2f6abb613 d212f0313d1dfe09475dc I've submitted a patch (CLA is signed and submitted, not yet processed), and Serihy said that since it changes the grammar I should have it reviewed here and have signoff by the BDFL.
While I haven't had a need for this myself, it was brought up by a user on StackOverflow (https://stackoverflow.com/questions/47272460/python-tuple- unpacking-in-return-statement/47326859). Thanks! Dave
-- Terry Jan Reedy
Python-Dev mailing list Python-Dev at python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/guido% 40python.org -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20171125/bc8fab44/attachment.html>
- Previous message (by thread): [Python-Dev] Allow tuple unpacking in return and yield statements
- Next message (by thread): [Python-Dev] Allow tuple unpacking in return and yield statements
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]