[Python-Dev] Re: anonymous blocks

Skip Montanaro skip at pobox.com
Mon Apr 25 15:11:16 CEST 2005


    Guido> At the same time, having to use it as follows:

    Guido>     for f in with_file(filename):
    Guido>         for line in f:
    Guido>             print process(line)

    Guido> is really ugly, so we need new syntax, which also helps with
    Guido> keeping 'for' semantically backwards compatible. So let's use
    Guido> 'with', and then the using code becomes again this:

    Guido>     with f = with_file(filename):
    Guido>         for line in f:
    Guido>             print process(line)

How about deferring major new syntax changes until Py3K when the grammar and
semantic options might be more numerous?  Given the constraints of backwards
compatibility, adding more syntax or shoehorning new semantics into what's
an increasingly crowded space seems to always result in an unsatisfying
compromise.

    Guido> Now let me propose a strawman for the translation of the latter
    Guido> into existing semantics. Let's take the generic case:

    Guido>     with VAR = EXPR:
    Guido>         BODY

What about a multi-variable case?  Will you have to introduce a new level of
indentation for each 'with' var?

Skip


More information about the Python-Dev mailing list