2

Here is my code:

import time

GLO = time.time()

def Test():
    print GLO
    temp = time.time();
    print temp
    GLO = temp

Test()

Traceback (most recent call last): File "test.py", line 11, in Test() File "test.py", line 6, in Test print GLO UnboundLocalError: local variable 'GLO' referenced before assignment

the error occurred when I add the GLO = temp, if I comment it, the function could be execute successfully, why?

How can I set GLO = temp?

2 Answers 2

5

Within the Test method specify that you want to refer to the globally declared GLO variable as shown below

def Test():
    global GLO #tell python that you are refering to the global variable GLO declared earlier.
    print GLO
    temp = time.time();
    print temp
    GLO = temp

A similar question can be found here : Using a global variable within a method

Sign up to request clarification or add additional context in comments.

Comments

5

Python looks the whole function scope first. So your GLO refers to the one below, not the global one. And refer the LEGB rule.

GLO = time.time()

def Test(glo):
    print glo
    temp = time.time();
    print temp
    return temp

GLO = Test(GLO)

or

GLO = time.time()

def Test():
    global GLO
    print GLO
    temp = time.time();
    print temp
    GLO =  temp

Test()

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.