[Python-ideas] Tweaking closures and lexical scoping to include the function being defined

Masklinn masklinn at masklinn.net
Thu Sep 29 17:20:58 CEST 2011

On 2011-09-29, at 17:15 , Paul Moore wrote:
> Actually, while we're using keywords as decorator names,
> @with(n=0, lock=threading.Lock())
> def global_counter():
>    with lock:
>        n += 1
>        return n
> reads well to me, and avoids the technical/jargon word "nonlocal". Let
> the @keyword floodgates open :-)
The problem with that one is that it's going to be read
in light of the corresponding keyword, so it'd make people
think the purpose is to __enter__/__exit__ all objects
provided around the function call somehow (pretty nice 
for the lock, nonsensical for the integer, of course).

More information about the Python-ideas mailing list