Re: Why this throws an UnboundLocalError ?

Discussion in 'Python' started by Ned Batchelder, Jan 30, 2014.

  1. On 1/30/14 5:46 PM, Marc Aymerich wrote:
    > Dear all,
    >
    > I have a very simple module
    >
    > glic3@e4200:# cat globalstate.py
    > GLOBAL = 0
    >
    > def update():
    > GLOBAL += 1
    >
    >
    > however it doesn't work!!
    >
    > glic3@e4200:# python
    > Python 2.7.3 (default, Aug 1 2012, 05:14:39)
    > [GCC 4.6.3] on linux2
    > Type "help", "copyright", "credits" or "license" for more information.
    >>>> import globalstate
    >>>> globalstate.update()

    > Traceback (most recent call last):
    > File "<stdin>", line 1, in <module>
    > File "globalstate.py", line 4, in update
    > GLOBAL += 1
    > UnboundLocalError: local variable 'GLOBAL' referenced before assignment
    >
    >
    > And I don't know why :(
    > Anyone ?
    >
    > Thanks!!
    >


    Assignment statements in functions implicitly make local names. If you
    want to assign a new value to a global name in a function, you have to
    use a global statement:

    def update():
    global GLOBAL
    GLOBAL += 1

    --
    Ned Batchelder, http://nedbatchelder.com
     
    Ned Batchelder, Jan 30, 2014
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Mr. SweatyFinger
    Replies:
    2
    Views:
    1,993
    Smokey Grindel
    Dec 2, 2006
  2. Marc Aymerich

    Why this throws an UnboundLocalError ?

    Marc Aymerich, Jan 30, 2014, in forum: Python
    Replies:
    0
    Views:
    59
    Marc Aymerich
    Jan 30, 2014
  3. Chris Angelico

    Re: Why this throws an UnboundLocalError ?

    Chris Angelico, Jan 30, 2014, in forum: Python
    Replies:
    0
    Views:
    66
    Chris Angelico
    Jan 30, 2014
  4. Mark Lawrence

    Re: Why this throws an UnboundLocalError ?

    Mark Lawrence, Jan 30, 2014, in forum: Python
    Replies:
    0
    Views:
    68
    Mark Lawrence
    Jan 30, 2014
  5. Marc Aymerich

    Re: Why this throws an UnboundLocalError ?

    Marc Aymerich, Jan 31, 2014, in forum: Python
    Replies:
    0
    Views:
    65
    Marc Aymerich
    Jan 31, 2014
Loading...

Share This Page