On Thu, Feb 5, 2015 at 8:08 AM, Ian Kelly <ian.g.ke...@gmail.com> wrote: > On Thu, Feb 5, 2015 at 2:40 AM, Steven D'Aprano > <steve+comp.lang.pyt...@pearwood.info> wrote: >> Devin Jeanpierre wrote: >>> On Wed, Feb 4, 2015 at 1:18 PM, Chris Angelico <ros...@gmail.com> wrote: >>>>>>>> [result] = f() >>>>>>>> result >>>>> 42 >>>> >>>> Huh, was not aware of that alternate syntax. >>> >>> Nor are most people. Nor is Python, in some places -- it seems like >>> people forgot about it when writing some bits of the grammar. >> >> Got an example where you can use a,b but not [a,b] or (a,b)? > >>>> def f(a, (b, c)): > ... print a, b, c > ... >>>> f(3, [4, 5]) > 3 4 5 >>>> def g(a, [b, c]): > File "<stdin>", line 1 > def g(a, [b, c]): > ^ > SyntaxError: invalid syntax > > Although to be fair, the first syntax there is no longer valid either > in Python 3.
As Ian rightly understood, I was referring to differences between "[a, b, ...]" and "(a, b, ...)". Here's another example, one that still exists in Python 3: >>> [] = '' >>> () = '' File "<stdin>", line 1 SyntaxError: can't assign to () The syntax explicitly blacklists (), but forgets to blacklist []. -- Devin -- https://mail.python.org/mailman/listinfo/python-list