[Python-Dev] anonymous blocks

Josiah Carlson jcarlson at uci.edu
Wed Apr 20 00:21:27 CEST 2005


[Guido van Rossum]
> @EXPR:
>     CODE
> 
> would become something like
> 
> def __block():
>     CODE
> EXPR(__block)
> 
> I'm not yet sure whether to love or hate it. :-)

Is it preferable for CODE to execute in its own namespace (the above
being a literal translation of the given code), or for it to execute in
the originally defined namespace?

Deferring to Greg Ewing for a moment [1]:
They should be lexically scoped, not dynamically scoped.

Wrapped blocks in an old namespace, I believe, is the way to go,
especially for things like...

@synchronize(fooLock):
    a = foo.method()

I cannot come up with any code for which CODE executing in its own
namespace makes sense.  Can anyone else?

<discussion on the overlap with PEP 310 removed for brevity>


 - Josiah

[1] http://mail.python.org/pipermail/python-dev/2005-March/052239.html


More information about the Python-Dev mailing list