1

这是我的代码:

import time

GLO = time.time()

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

Test()

Traceback(最近一次调用最后一次):文件“test.py”,第 11 行,在 Test() 文件“test.py”,第 6 行,在 Test print GLO UnboundLocalError: local variable 'GLO' referenced before assignment

添加时出现错误GLO = temp,如果我评论它,函数可以成功执行,为什么?

我该如何设置GLO = temp

4

2 回答 2

4

在 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

可以在这里找到类似的问题: 在方法中使用全局变量

于 2013-07-14T16:52:50.107 回答
3

Python 首先查看整个函数范围。所以你GLO指的是下面的那个,而不是全局的。并参考LEGB 规则

GLO = time.time()

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

GLO = Test(GLO)

或者

GLO = time.time()

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

Test()
于 2013-07-14T16:48:56.347 回答