Python错误:赋值前引用的局部变量

时间:2013-07-14 16:46:01

标签: python variables compiler-errors

这是我的代码:

import time

GLO = time.time()

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

Test()
  

Traceback(最近一次调用最后一次):文件“test.py”,第11行,in          Test()文件“test.py”,第6行,在Test中       print GLO UnboundLocalError:赋值前引用的局部变量'GLO'

我添加GLO = temp时发生错误,如果我发表评论,该功能可以成功执行,为什么?

如何设置GLO = temp

2 个答案:

答案 0 :(得分:3)

在Test方法中指定您要引用全局声明的GLO变量,如下所示

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

类似的问题可以在这里找到: Using a global variable within a method

答案 1 :(得分:2)

Python首先查看整个函数范围。所以你的GLO指的是下面的那个,而不是全局的GLO = time.time() def Test(glo): print glo temp = time.time(); print temp return temp GLO = Test(GLO) 。并参考LEGB rule

GLO = time.time()

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

Test()

{{1}}