[Python-Dev] Extended Function syntax

Armin Rigo arigo@tunes.org
Sat, 1 Feb 2003 09:31:08 -0800 (PST)


Hello,

On Thu, Jan 30, 2003 at 09:02:23PM -0500, Guido van Rossum wrote:
>   v = e:
>      S
> 
> would be equivalent to
> 
>   v = e(T)

Just to throw more oil on the fire, note that this looks quite a lot like

    for v in e:
        S

For example, it is quite messy but you can already define 'newproperty' to let
you do the following in 2.2:

    class X:
       for count in newproperty:
          def get(self):
             return self._count
          def set(self, value):
             self._count = value

Similarily you can "almost" already write the following for locks:

    for _ in acquired(lock):
        ...

i.e. you can define acquired() so that the loop is done exactly once, and the
lock released at the end.  It doesn't really work because you there is no
place in acquired() you can put the try:...finally:.


Just-drawing-parallels'ly yours,

Armin.