[Python-ideas] adding an __exec__ method to context managers?
debatem1 at gmail.com
Tue Oct 13 06:47:45 CEST 2009
On Mon, Oct 12, 2009 at 11:09 PM, Carl Johnson
<cmjohnson.mailinglist at gmail.com> wrote:
> This is definitely an idea that python-ideas has seen before. Just a
> couple months ago, when the syntax of "with" was being changed to
> allow for "with a, b, c" this was kicked around as a possible
> improvement to the with statement.
> Taking a step back, it seems like what you really want is some easy
> way to create callbacks, just like Ruby blocks or the new Objective-C
> blocks. There are a number of ways this could be done:
> 1. Some kind of multiline lambda. (This is generally considered to be
> 2. Relaxing the restrictions on decorators so that, eg. this, is legal:
> def _(mt):
> for i in mt.iter:
> with mt.critical:
> Then you can have it auto-call itself and ignore the fact that _ will
> be the result (presumably None) and not a callable.
> 3. Some sort of "out of order operation" signal, as was batted around
> on the list a while back:
> result = pymp.parallel_for( ~~DEFINE_ME_NEXT~~, range(100))
> def DEFINE_ME_NEXT(mt): ...
> There are many potential ways to spell that.
> 4. Some modification to the "with" statement, as you are proposing.
> The resistance that you will face with this idea is that it is
> significantly different from how "with" works now, since it does not
> create a block at all.
> Frankly I think this list is going to face proposals for some block
> substitute or another every couple months between now and whenever
> Python finally allows for some more readable way of passing functions
> to other functions.
> — Carl Johnson
I agree, and I'd like to hear more about what you think ought to
be done about the issue.
More information about the Python-ideas