这是我的代码:
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
?
答案 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}}