这是我的代码:
abc=0
def a():
abc+=1
print abc
当我执行此功能时:
a()
我收到此错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in abc
UnboundLocalError: local variable 'abc' referenced before assignment
我可以通过在函数中添加global abc
来解决这个问题,但我的问题是为什么python解释器无法决定某些东西是否在本地空间中,然后搜索全局并从那里分配值。
它是用于在本地空间中打印全局变量而不是用于分配?
答案 0 :(得分:1)
编辑1:更新了错误的变量名称和注释的代码。
编辑2:添加了示例增量代码。
即使您指定为全局变量,也必须在函数中指定“abc”变量。
# if assign global abc
global abc
def a():
# must assign variable "abc"
abc = 0
abc += 1
print abc
a()
# print 1
增加示例代码。
abc = 0
def a():
global abc
abc = abc + 1
a()
# every times call a() plus 1 to abc.
print abc
# print 1