示例如下:
i = 9
print(id(i))
def test():
print(id(i))
以上的代码运行是ok的,但是将test函数改为如下:
def test():
print(id(i))
i = 10将会引发 UnboundLocalError: local vaiable 'i' referenced before assignment
在python的函数中和全局同名的变量,如果你修改变量的值就会变成局部变量,在修改之前对该变量的引用自然就会出现没定义这样的错误了,如果确定要引用全局变量,并且要对它修改,必须加上global关键字。但是反过来说,把全局变量改来改去个人觉得很不靠谱。