[Python-Dev] PEP 343 - next steps

Guido van Rossum gvanrossum at gmail.com
Fri Jun 10 22:23:04 CEST 2005

While there's still some activity in the Wiki, nothing (to me) sounds
like signs of serious disagreement or truly better alternatives. So I
think I'd like to move forward towards acceptance soon (before

Two issues brought up in the Wiki are worth considering:

- throw() is a term taken from Java & C++. We can't call the method
raise() -- but perhaps we can call it next_raising() or next_raise(),
which emphasizes the similarity with next(). Thoughts? I'm not strong
on this; I think throw() is fine too, especially since I expect that
it will be used explicitly extremely rarely -- the only customer is
the with_template decorator.

- Whether and how to keep a door open for a future extension to the
syntax that allows multiple resources to be acquired in a single
with-statement. Possible syntax could be

(a)    with EXPR1 [as VAR1], EXPR2 [as VAR2], EXPR3 [as VAR3], ...:


(b)    with EXPR1, EXPR2, EXPR3, ... as VAR1, VAR2, VAR3, ...:

Variant (a) seems better and is more analogous to the use of 'as' in
import statements, and (b) has the disadvantage that if you want to
acquire several resources and not all of them have an associated
variable, you'll have to sprinkle dummy variables on the right of
'as'. So (a) would have my preference. But I would still like to start
off without this extension. The issue is: if we allow VAR to be a
comma-separated list of variables now, that cuts off the extension to
(a) in the future; so the PEP would have to be amended to state that
VAR must be a single variable or a list of variables IN PARENTHESES.

--Guido van Rossum (home page: http://www.python.org/~guido/)

More information about the Python-Dev mailing list