[Python-ideas] Why does += trigger UnboundLocalError?
Carl M. Johnson
cmjohnson.mailinglist at gmail.com
Wed Jun 1 11:41:06 CEST 2011
On Tue, May 31, 2011 at 11:09 PM, Jacob Holm <jh at improva.dk> wrote:
>
> x = 1
> > def f():
> > # The next statement uses the global x
> > x += 1
> > x = 2
> > # From here, you have a local x
> >
>
>
> Specifically, the "x = 2" statement (and the lack of a nonlocal
> statement) forces x to be local throughout the function, and the "x +=
> 1" statement then tries to read the local "x" and fails.
>
Yes, Jacob has got exactly what I was proposing. x += 1; x = 2 should
continue to fail, since there would be a = statement in the function body in
that case.
-- Carl
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20110531/339a5b43/attachment.html>
More information about the Python-ideas
mailing list