Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #65059

Re: Why this throws an UnboundLocalError ?

References <CA+DCN_tQsZDckkueO7FiVYKihy2b9=SdeALJ4RwrQN_uk0dDLQ@mail.gmail.com>
Date 2014-01-31 09:53 +1100
Subject Re: Why this throws an UnboundLocalError ?
From Chris Angelico <rosuav@gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.6173.1391122402.18130.python-list@python.org> (permalink)

Show all headers | View raw


On Fri, Jan 31, 2014 at 9:46 AM, Marc Aymerich <glicerinu@gmail.com> wrote:
> GLOBAL = 0
>
> def update():
>     GLOBAL += 1

If you assign to a name, Python makes it local, unless you explicitly
tell it that you want it to be global:

def update():
    global GLOBAL
    GLOBAL += 1

But be aware that the ALL_CAPS name conventionally means a constant.
Since you're changing its value, it's not constant (wow! :) ), so
using a name of GLOBAL is a bad idea. (Also, obviously, you want to
name it appropriately to what you're doing, but I assume you called it
this as part of cutting down your example. For which, by the way,
thank you. You posted a complete example, and the full traceback, and
the Python version and platform. That's everything that we need to
help you - it's such a luxury!!)

ChrisA

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

Re: Why this throws an UnboundLocalError ? Chris Angelico <rosuav@gmail.com> - 2014-01-31 09:53 +1100

csiph-web