while expression feature proposal

Cameron Simpson cs at zip.com.au
Fri Oct 26 20:19:26 EDT 2012


On 26Oct2012 16:48, Ian Kelly <ian.g.kelly at gmail.com> wrote:
| On Fri, Oct 26, 2012 at 4:03 PM, Cameron Simpson <cs at zip.com.au> wrote:
| > It will work anywhere an expression is allowed, and superficially
| > doesn't break stuff that exists if "as" has the lowest precedence.
| 
| Please, no.  There is no need for it outside of while expressions, and
| anywhere else it's just going to be bad practice.  Even if it's
| considered an expression, let's only allow it in while expressions.

We might just have to differ here.

| > It would probably mean folding the except/with "as" uses back into
| > expressions and out of the control-structural part of the grammar. I can't
| > see that that would actually break any existing code though - anyone else?
| 
| Yes it would, because the meaning is a bit different in both of those
| cases.  For except, the result of the expression (an exception class
| or tuple of classes) is not stored in the target; the exception
| *instance* is.  Similarly for with, the result of the expression is
| not stored; the result of calling its __enter__ method is, which is
| often but not always the same thing.

Hmm. Good points. Possibly damning points.

  except (E1, E2) as c as d:

anyone? I should hope not!

I may be back to +0 now:-( +0.5 for being able to get at partial
expression results somehow, -0.1 for the conflict above.

Cheers,
-- 
Cameron Simpson <cs at zip.com.au>

Every \item command in item_list must have an optional argument.
        - Leslie Lamport, LaTeX



More information about the Python-list mailing list