Guido van Rossum wrote:
A variation on this with somewhat different semantics swaps the keywords:

    in EXPR for VAR:
        BLOCK

If you don't need the variable, you can leave the "for VAR" part out:

    in EXPR:
        BLOCK

Too cute? :-)


I don't think it reads well. I would prefer something that would be understandable for a newbie's eyes, even if it fits more with common usage than with the real semantics behind it. For example a Boost-like keyword like:


scoped EXPR as VAR:
    BLOCK

scoped EXPR:
    BLOCK

We may argue that it doesn't mean a lot, but at least if a newbie sees the following code, he would easily guess what it does:

scoped synchronized(mutex):
    scoped opening(filename) as file:
        ...

When compared with:

in synchronized(mutex):
    in opening(filename) for file:
        ...

As a C++ programmer, I still dream I could also do:

scoped synchronized(mutex)
scoped opening(filename) as file
...

which would define a block until the end of the current block...

Regards,
Nicolas

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to