On 2/21/2014 5:06 PM, Greg Ewing wrote: > Nick Coghlan wrote: >> On 21 February 2014 13:15, Chris Angelico <ros...@gmail.com> wrote: >> >>> Generator expressions require parentheses, unless they would be >>> strictly redundant. Ambiguities with except expressions could be >>> resolved in the same way, forcing nested except-in-except trees to be >>> correctly parenthesized >> >> I'd like to make the case that the PEP should adopt this as its >> default position. > > I generally agree, but I'd like to point out that this > doesn't necessarily mean making the parenthesizing rules as > strict as they are for generator expressions. > > The starting point for genexps is that the parens are part of > the syntax, the same way that square brackets are part of > the syntax of a list comprehension; we only allow them to > be omitted in very special circumstances. > > On the other hand, I don't think there's any harm in allowing > an except expression to stand on its own when there is no > risk of ambiguity, e.g. > > foo = things[i] except IndexError: None
I agree that it would be a shame to disallow this simple usage. I'd like to leave this like any other expression: add parens if they add clarity or if they are required for the precedence you'd prefer. Personally, I'd probably always use parens unless it was a simple assignment (as above), or an argument to a function call. But I think it's a style issue. Eric. > should be allowed, just as we allow > > x = a if b else c > > and don't require > > x = (a if b else c) > _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com