On Tue, May 22, 2018 at 11:32 PM, Christian Gollwitzer <aurio...@gmx.de> wrote: > Am 23.05.18 um 07:22 schrieb Chris Angelico: >> >> On Wed, May 23, 2018 at 9:51 AM, bartc <b...@freeuk.com> wrote: >>> >>> Sorry, but I don't think you're right at all. unless the official >>> references >>> for the language specifically say that commas are primarily for >>> constructing >>> tuples, and all other uses are exceptions to that rule. >> >> >> "A tuple consists of a number of values separated by commas" >> >> https://docs.python.org/3/tutorial/datastructures.html#tuples-and-sequences >> >> "Separating items with commas" >> https://docs.python.org/3/library/stdtypes.html#tuple >> >> "Note that tuples are not formed by the parentheses, but rather by use >> of the comma operator." >> https://docs.python.org/3/reference/expressions.html#parenthesized-forms >> >> Enough examples? Commas make tuples, unless context specifies otherwise. > > > I'd think that the definitive answer is in the grammar, because that is what > is used to build the Python parser: > > https://docs.python.org/3/reference/grammar.html > > Actually, I'm a bit surprised that tuple, list etc. does not appear there as > a non-terminal. It is a bit hard to find, and it seems that "atom:" is the > starting point for parsing tuples, lists etc.
For enclosed tuples, yes. I believe that tuples without parentheses can be produced by either 'exprlist' or 'testlist' (which is why some cases permit iterable unpacking and some don't). -- https://mail.python.org/mailman/listinfo/python-list