[Python-Dev] Extended Function syntax

Michael Hudson mwh@python.net
Mon, 03 Feb 2003 15:25:49 +0000


"Moore, Paul" <Paul.Moore@atosorigin.com> writes:

> From: Michael Hudson [mailto:mwh@python.net]
>>>> How would I do this elegantly without the assignment...?
>>>
>>> Just as you do with if:
>>
>> Good point.  "with" testlist ':' NEWLINE it is, if it's me
>> that gets to write the PEP.
>
> Are you saying that you don't see the value of
>
>     with var = expr:
>         suite
>
> because it can be rewritten as
>
>     var = expr
>     with var:
>         suite
>
> ? Hmm, I suppose so.

Well, I'd consider making the "var =" optional, but that would require
hairy parser games (I think it would be possible, but very nasty).

Given that it (practically) can't be, I find having to make up a name
for something that doesn't need one (e.g.

with dummy = autolock(lock):
    ...

) more unpleasant than having to bind to a name in a different line.

[...]
> So I guess what I'm saying is that "with ... autoclose" only
> make sense in combination. Putting the two on different lines loses
> that connection. If you need to name the result of the autoclose()
> call, you either allow the with construct to include the assignment,
> or you lose that conceptual link.

Hmm, maybe the nasty parser hacks would be worth it...

Cheers,
M.

-- 
8. A programming language is low level when its programs require
   attention to the irrelevant.
  -- Alan Perlis, http://www.cs.yale.edu/homes/perlis-alan/quotes.html