[Python-Dev] replacing 'global'

Alex Martelli aleaxit at yahoo.com
Sun Oct 26 11:20:16 EST 2003


On Sunday 26 October 2003 04:58 pm, Just van Rossum wrote:
> Aahz wrote:
> > Sounds good to me.  Question: what does this do?
> >
> >     def f():
> >         def g(x):
> >             z := x
> >         g(3)
> >         print z
> >         return g
> >     g = f()
> >     print z
> >     g('foo')
> >     print z
> >
> > That is, in the absence of a pre-existing binding, where does the
> > binding for := go?  I think it should be equivalent to global, going
> > to the module scope.
>
> I think it should raise NameError or UnboundLocalError or a new
> NameError subclass. "In the face of ambiguity, etc."

Absolute agreement here.  I think a new subclass of NameError
would be best.  The simplest and most limited the functionality of
:= the more effective I think it will be.


Alex




More information about the Python-Dev mailing list